1

我有一个/tags.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"}
]

但我怎么能得到令牌?

4

1 回答 1

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
于 2013-07-24T12:30:48.327 回答