简单的例子,我有两个与has_many_belongs关联的模型关系
如何使用to_json函数users_count?
进行渲染class Place < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :places
end
places = Place.all
render json: {desc:true, status: 1, data: places}.to_json(:include => [:users])
output: data[
{
place_id: 1,
users[]
}
我如何输出:
output: data[
{
place_id: 1,
users_count: 10
}
我是初学者,请帮忙吗? )
答案 0 :(得分:1)
这是如何获得嵌套关系的一个很好的例子:Rails Object Relationships and JSON Rendering
您似乎不想要数据库列,而是要计算具有该位置的所有用户的信息。您可以在app/models/place.rb
中定义一个看起来像的函数:
def users_count
User.where(place_id: id)
end
然后,您可以将其作为以下方法包含在数据中:
render json: {desc:true, status: 1, data: places}.to_json(include: :users, methods: :users_count)
以下是如何在to_json
中添加自定义方法的示例:http://www.tigraine.at/2011/11/17/rails-to_json-nested-includes-and-methods
我之前没有这样做,所以让我知道它是如何工作的!