Chcę pobrać wszystkie kategorie, które zawierają zakup products
.Ruby/Rails - Czy mogę użyć zakresu (lub metody) złączonego stołu jako części mojej klauzuli 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
Tak więc, próbuję zdefiniować :with_purchaseable_products
. Działa to:
scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')
Ale to nie jest bardzo suche. Czy jest jakiś sposób zastosowania mojego zakresu :purchaseable
do products
w moim zasięgu :with_purchaseable_products
?
Dzięki.
dwa dodatkowe referencje: https://gorails.com/blog/activerecord-merge i http://apidock.com/ Rails/ActiveRecord/SpawnMethods/merge – Miguelgraz