以下呈现属性 selected_branch 的 json,包括其所有产品以及产品的类别:
render json: selected_branch, :include => { :products=> {:include =>:categories }, :enabled => true }
如何只包含所有具有“Product.enabled = true”的产品?
以下呈现属性 selected_branch 的 json,包括其所有产品以及产品的类别:
render json: selected_branch, :include => { :products=> {:include =>:categories }, :enabled => true }
如何只包含所有具有“Product.enabled = true”的产品?
在之前的 ActiveRecord 查询中,您可能会获取 的数据selected_branch
,在render :json
. 我将从在模型上使用 rails 范围开始。
像这样的东西:
在您的模型中(不确定它是什么,所以我将其称为分支)
分支.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 应该只是那些已经启用产品的分支。当然,您始终可以将 a 添加.where(...)
到该范围的末尾,因为它只是一个 ActiveRecord 关系,您可以进一步缩小数据集的范围。