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')
하지만 그다지 DRY가 아닙니다. 내 :purchaseable
범위를 내 :with_purchaseable_products
범위에 products
범위에 적용 할 수있는 방법이 있습니까?
감사합니다.
두 추가 참조에 대한 자세한 읽기
을 사용해야합니다 https://gorails.com/blog/activerecord-merge 및 http://apidock.com/ 레일/ActiveRecord/SpawnMethods/병합 – Miguelgraz