2
이 내 협회 및 범위 설정입니다 :활성 레코드의 범위와 has_many 연결을 어떻게 연결할 수 있습니까?
has_many :owned_products
has_many :owned_lessons, :through => :owned_products, :source => :lesson, :conditions => "owned_products.product_type = 'Lesson'"
scope :active_purchase_scope, lambda {
where('owned_products.created_at' => (Date.today - CONFIG['downloads']['time_window'].days)..(Date.today)).order('owned_products.created_at DESC')
}
def active_lessons
owned_lessons.active_purchase_scope
end
이다 오류 내가 얻을 :
ruby-1.8.7-p334 :005 > User.find_by_username('joeblow').active_lessons
NoMethodError: undefined method `active_purchase_scope' for #<User:0x1051a26c8>
다
필자는 Array 클래스로 인해 이것이 작동하지 않는 이유를 이해했지만 active_purchase_scope을 추상화하는 방법을 아직 모르고 있습니다. 모든 제품에서 단원뿐 아니라 이것을 사용해야하기 때문입니다. 현재 제품 모델은 어떤 것도 상속받지 않습니다. 모든 제품이 상속하는 제품 모델을 만들어야합니까 (이 작업은 실제로 혼란 스러울 수 있습니다. 즉, 조인 테이블에 product_id가 있습니다) 또는 mixin을 통해 동일한 작업을 수행 할 수 있습니까? – pixelearth