У меня есть следующие модели:
Продукт (id, имя):
has_many :prices
Цена_продукта (id, product_id, цена): Дело в том, что каждый продукт может иметь разные цены
belongs_to :product
Подписка (id, имя):
has_many :subscription_price_sets,
foreign_key: :subscription_price_set_id,
inverse_of: :subscription
has_many :product_prices, through: :subscription_price_sets
Subscription_price_set (id, product_price_id, subscription_id):
belongs_to :subscription,
foreign_key: :subscription_id
belongs_to :product_price,
foreign_key: :product_price_id
Как сделать Я подтверждаю это, так что для данной подписки невозможно иметь продукт с двумя разными ценами?
Например:
У меня есть два продукта: Записная книжка (id : 1) и Карандаш (id: 2) И их цены:
Цена продукта:
(id: 1, product_id: 1, price: 4)
(id: 2, product_id: 1, price: 12)
(id: 3, product_id: 1, price: 10)
(id: 4, product_id: 2, price: 3)
(id: 5, product_id: 2, price: 2)
И подписка Basi c:
(id: 1, name: "Basic")
Допустим, у меня есть Subscription_price_set:
(id: 1, product_price_id: 1, subscription_id: 1)
Теперь я должен иметь возможность создать еще один Subscription_price_set
с subscription_id: 1
, но единственными допустимыми product_price_ids должны быть id: 4 и id: 5 .
Есть какие-нибудь советы о том, как этого добиться?