ruby-on-rails - query - scope rails
Ruby/Rails-¿Puedo usar el alcance de una tabla unida(o método de clase) como parte de mi cláusula WHERE? (1)
Debes usar el método de combinación
class Category < ActiveRecord::Base
has_many :products
scope :with_purchaseable_products, joins(:products).merge(Product.purchaseable).group(:id).having(''count(products.id) > 0'')
end
Lea más en http://asciicasts.com/episodes/215-advanced-queries-in-rails-3
Quiero agarrar todas las categorías que contienen products
que se pueden comprar.
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
Entonces, estoy tratando de definir :with_purchaseable_products
. Esto funciona:
scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having(''count(products.id) > 0'')
Pero eso no es muy SECO. ¿Hay alguna manera de aplicar mi :purchaseable
alcance :with_purchaseable_products
a los products
en mi :with_purchaseable_products
alcance con products
de :with_purchaseable_products
?
Gracias.