Tôi muốn lấy tất cả các danh mục có chứa products
có thể mua.Ruby/Rails - Tôi có thể sử dụng phạm vi (hoặc phương thức lớp) của bảng đã tham gia như một phần của mệnh đề WHERE của tôi không?
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
Vì vậy, tôi đang cố gắng xác định :with_purchaseable_products
. Công trình này:
scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')
Nhưng điều đó không phải là rất khô. Có cách nào để áp dụng phạm vi :purchaseable
của tôi cho products
trong phạm vi :with_purchaseable_products
của tôi không?
Cảm ơn.
Hai tài liệu tham khảo thêm: https://gorails.com/blog/activerecord-merge và http://apidock.com/ rails/ActiveRecord/SpawnMethods/merge – Miguelgraz