19
購入可能なproducts
を含むすべてのカテゴリを取得したいと考えています。Ruby/Rails - WHERE句の一部として結合テーブルのスコープ(またはクラスメソッド)を使用できますか?
class Product < ActiveRecord::Base
belongs_to :category
scope :purchaseable, where(:available => true)
end
class Category < ActiveRecord::Base
has_many :products
scope :with_purchaseable_products, ?????
end
したがって、:with_purchaseable_products
を定義しようとしています。これはうまくいきます:
scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')
しかし、あまり乾燥していません。私の:purchaseable
スコープを私の:with_purchaseable_products
スコープのproducts
に適用する方法はありますか?
ありがとうございました。
2つの余分な参照にもっと読む
を使用する必要があります。https://gorails.com/blog/activerecord-mergeとhttp://apidock.com/レール/ ActiveRecord/SpawnMethods/merge – Miguelgraz