1
我有這兩種模式:ActiveRecord的:如何建立與外鍵或空的has_many關係
class Promotion < ActiveRecord::Base
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :promotions
end
並考慮這3個優惠:
--------------------------
| PROMOTIONS |
--------------------------
| id | name | product_id |
| 1 | sale | NULL |
| 2 | 10% | 1 |
| 3 | 20% | 2 |
--------------------------
當product_id
是NULL
,推廣應用所有產品,所以我希望能夠獲得產品的所有促銷活動如下:
Product.find(1).promotions # => [1,2]
Product.find(2).promotions # => [1,3]
我該如何做到這一點?
很好的解決方案@Joe,但我認爲存在一種方法來爲'has_many'方法提供一些選項。或者我錯了? – Rodrigo
我一直在想一個使用關聯的人,但它似乎會與'ActiveRecord'關聯操作的方式相反。通過'has_many',暗示'product'的'promotions'是所有'promotions',其中'promotions.product_id = products.id'是真實的。我認爲沒有辦法去修改它,因爲我覺得這可能是危險的。 –