2013-07-24 1 views
1

나는 선수와 팀의 목록을 렌더링하고자하는 /tags.json을 가지고 있는데, 다음을 사용하여 선수와 팀 모델 모두에 넣었습니다.렌더링 사용자 정의 json 다형성 목록

def token 
    "#{id}_#{self.class.name}" 
end 

태그 컨트롤러

def index 
    @players = Player.all 
    @teams = Team.all 
    @tags = @teams + @players 

    respond_to do |format| 
    format.json { render json: @tags} 
    end 
end 

하지만 어떻게 내 태그 컨트롤러의 목록을 만들 수 있습니다, 그래서 난이

[ 
    {"name":"Bob","token":"1_Player"}, 
    {"name":"Yankees","token":"1_Team"} 
] 

같은 것을 얻을 수 있습니다 내가 어떻게 할 수 있습니까? 편집

format.json { render json: @tags.as_json(only: [:name])} 

[ {"name":"Bob"}, {"name":"Yankees"} ] 

를 렌더링하지만 난 토큰을 어떻게 얻을 수 있을까? 이 같은

답변

2

시도 뭔가 :

@tags = [] 
Team.all.each do |team| 
    @tags.push({name: team.name, tag: team.token}) 
end 
Player.all.each do |player| 
    @tags.push({name: player.name, tag: player.token}) 
end 

respond_to do |format| 
    format.json { render json: @tags} 
end