我正在使用backbone.js作为前端,从这样的控制器接收json结果
def index
myEntry = Entry.all
respond_with myEntry.to_json()
end
生成的json数组是对象的集合,如下所示
0:Object
id:1
name:matz
1:object
id:2
name: hilary
现在,每个名称都有一个使用act-as-taggable-on gem存储的额外标记字段。要访问任何条目的标记,我必须使用 Entry.find(1).tag_list。 我想从上面将每个标记的结果附加到其各自的对象,以获得类似这样的结果
0:Object
id:1
name:matz
tag:friend,rich
1:object
id:2
name: hilary
tag:intelligent
答案 0 :(得分:2)
这应该适合你:
render json: User.all.to_json(include: :tags)
或者(只是标签名称):
render json: User.all.to_json(methods: :tag_list)
答案 1 :(得分:2)
来自@dimakura的完美答案。但是如果你想在你的json数组中包含一些与你的结果没有直接关联的东西,或者由于更复杂的原因,这里有另一种方式
示例代码
myEntry = Entry.all
myhash = []
myEntry.each do |index|
myhash << {name: index.name,tag_list: index.tag_list}
end
respond_with myhash.to_json