Ich habe zwei Modelle:Wie erstellt man einen Bereich, der die Zuordnung vergleicht?
class Subscription
belongs_to :subscriber, :class_name => "User"
belongs_to :subscribable, :polymorphic => true
end
class Product
belongs_to :user
has_many :subscriptions, :as => :subscribable, :dependent => :destroy
end
create_table :products do |t|
t.string :name
t.decimal :price
t.decimal :cost_per_unit
t.integer :user_id
end
create_table :subscriptions do |t|
t.string :name
t.decimal :price
t.decimal :cost_per_unit
t.integer :subscriber_id
t.integer :subscribable_id
t.string :subscribable_type
end
In meinem Modell, Ich versuche, einen Rahmen zu machen, die die price
oder cost_per_unit
der Product
zum Subscription
vergleicht. Ich weiß einfach nicht, wie ich das in SQL schreiben würde. So sollte es so etwas wie sein:
class Product
def self.lower_prices
where(self.price < self.subscription.price OR self.cost_per_unit < self.subscription.cost_per_unit)
end
end
Wie würde ich das schreiben?