Ruby on rails 使用过滤后的ActiveRecord对象创建嵌套JSON
我需要创建一个包含3级活动记录对象的嵌套JSON数据,如下所示:Ruby on rails 使用过滤后的ActiveRecord对象创建嵌套JSON,ruby-on-rails,ruby,json,activerecord,Ruby On Rails,Ruby,Json,Activerecord,我需要创建一个包含3级活动记录对象的嵌套JSON数据,如下所示: 接触有很多障碍 Chantiers有很多照片 目前,JSON文件包含与联系人关联的所有记录。但是,我需要限制3级对象照片仅显示“共享”字段等于true的记录 类似于:Photo.where(共享:true)而不是所有照片 有人能就如何实现这一目标提出建议吗 非常感谢实现这一点的一种方法是创建一个关联,该关联经过过滤,仅显示“共享照片”,然后将其包含在JSON输出中。在您的联系人型号中,添加以下内容: # You probabl
- 接触有很多障碍
- Chantiers有很多照片
非常感谢实现这一点的一种方法是创建一个关联,该关联经过过滤,仅显示“共享照片”,然后将其包含在JSON输出中。在您的
联系人
型号中,添加以下内容:
# You probably have something like this already:
has_many :photos
# Below is what you need to add
# Rails 4
has_many :shared_photos, -> { where(shared: true) }, source: :photos
# Rails 3
has_many :shared_photos, conditions: lambda { where(shared: true) }, source: :photos
一旦设置了条件关联,您就可以像通常包含关联一样,在as_json
调用中使用它,如下所示:
render :json => contact.as_json(include: :shared_photos)
谢谢@ryan brunner!
render :json => contact.as_json(include: :shared_photos)