0

以下呈现属性 selected_branch 的 json,包括其所有产品以及产品的类别:

render json: selected_branch, :include => { :products=> {:include =>:categories }, :enabled => true }

如何只包含所有具有“Product.enabled = true”的产品?

4

1 回答 1

0

在之前的 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 关系,您可以进一步缩小数据集的范围。

于 2013-09-19T00:24:18.287 回答