私は2つのモデルを持っています:
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
私の製品モデルでは、 のprice
またはcost_per_unit
をと比較するスコープを作成しようとしProduct
ていSubscription
ます。これをSQLで書く方法がわかりません。したがって、次のようになります。
class Product
def self.lower_prices
where( self.price < self.subscription.price OR self.cost_per_unit < self.subscription.cost_per_unit )
end
end
これをどのように書きますか?