Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 呈现自定义json多态列表_Ruby On Rails_Json - Fatal编程技术网

Ruby on rails 呈现自定义json多态列表

Ruby on rails 呈现自定义json多态列表,ruby-on-rails,json,Ruby On Rails,Json,我有一个/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}

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

但是我怎样才能得到代币呢?

试试这样的方法:

@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