以下呈现了属性selected_branch的json,包括其所有产品以及产品的类别:
render json: selected_branch, :include => { :products=> {:include =>:categories }, :enabled => true }
我怎样才能包含所有“Product.enabled = true”的产品?
答案 0 :(得分:0)
在ActiveRecord查询的早期,您可能会获得selected_branch
的数据,请在render :json
之前将其构建到您的查询中。我首先在模型上使用rails scope。
这样的事情:
在你的模型中(不确定它是什么,所以我将它称为分支)
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关系,您可以进一步缩小数据集范围。