[英]Render JSON and filtering by attribute in Ruby on Rails
以下内容呈现属性selected_branch的json,包括其所有产品以及产品类别:
render json: selected_branch, :include => { :products=> {:include =>:categories }, :enabled => true }
如何只包含所有具有“ Product.enabled = true”的产品?
在ActiveRecord查询的较早位置(大概会获取selected_branch
的数据),将其构建到查询中render :json
之前。 我将从在模型上使用Rails范围开始。
像这样:
在您的模型中(不确定它是什么,因此我将其称为“分支”)
Branch.rb
class Branch < ActiveRecord::Base
has_many :products
scope :with_enabled_products, -> { includes(:products).where(products: {enabled: true}) }
end
然后在您的控制器中
selected_branch = Branch.with_enabled_products
然后,您呈现的JSON应该仅是已启用产品的分支的JSON。 当然,您始终可以在该范围的末尾加上.where(...)
,因为它只是一个ActiveRecord关系,您可以进一步缩小数据集的范围。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.