Ruby / Rails - Kann ich eine verknüpfte Tabelle als Bereich(oder Methode der Klasse) als Teil meiner WHERE-Klausel?

Möchte ich greifen Sie alle Kategorien enthalten purchaseable products.

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

So, ich bin versucht zu definieren :with_purchaseable_products. Das funktioniert:

scope :with_purchaseable_products, joins(:products).where("products.available is true").group(:id).having('count(products.id) > 0')

Aber das ist nicht sehr TROCKEN. Gibt es eine Möglichkeit, um mein :purchaseable Umfang zu products in meinem :with_purchaseable_products Umfang?

Dank.

InformationsquelleAutor johnnycakes | 2011-07-27
Schreibe einen Kommentar