0
我有@posts属于用户。我试图呈现@posts,但也追加用户名称和城市。我想这将有可能做这样的事情合并ActiveRecords对象的最佳方法?
respond_to do |format|
format.json {
@post_arr = Array.new
@posts.each do |post|
@post_arr[post.id] = post + post.user.name + post.user.city
end
render json: @post_arr
}
end
我得到了一个未定义的方法'+”为#
我也试过在Post模型创建虚拟属性,并将其指定为这样 post.author = post.user.name post.author_city = post.user.city 但它只是显示json中的user_id(这是外键)
我尝试合并以及但不起作用。什么是做在轨
编辑有道:我得到了它与
format.json {
@post_arr = Array.new
@posts.each do |post|
@post_arr << post.as_json.merge!({:author_name => post.user.name, :author_city => post.user.city})
end
render json: @post_arr
}
end
CA ñ你解释你在jbuilder文件中的json.user的位置 – CodeCrack 2015-02-09 00:29:18
虽然这是错误的答案...,但jbuilder的基本格式是'json.key值'。 'key'是json的关键(例如:id,name,user,...),你可以决定你想要什么。 'value'是json的值(例如:1,2,post1,post2,..),并设置值ActiveRecord对象的值。请检查https://github.com/rails/jbuilder,如果你想了解更多关于'jbuilder'的细节。 – shoji 2015-02-09 01:23:17