繁体   English   中英

ruby on rails to_json仅包含计数

[英]ruby on rails to_json include only count

简单的例子,我有两个具有has_many_belongs关联的Models关系

如何使用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
            }

我是初学者,请您能帮忙吗?

这是一个如何获取嵌套关系的好例子: Rails对象关系和JSON渲染

似乎您不想要数据库列,而是想要统计拥有该位置的所有用户的信息。 您可以在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包含自定义方法的to_jsonhttp : to_json

我之前没有做过,所以让我知道它是如何工作的!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM