【发布时间】:2017-07-17 09:19:56
【问题描述】:
我有一个类,比如 Car,我从它继承了 Black 和 Red 类,如下所示:
class Car::Black < Car
end
class Car::Red < Car
end
现在,还有另一个类,比如 CarPurchase,它有很多两种类型的汽车。关联如下:
# In Black and Red models:
has_many :car_purchases, as: :purchasable, dependent:destroy
# In CarPurchase model:
belongs_to :purchasable, polymorphic: true
现在我正在尝试像这样保存 CarPurchases:
black_car.car_purchases.new() # black_car is an object of class Car::Black
我的数据库有一个名为 purchasable_type 的列。问题是记录是用 purchasable_type 'Car' 而不是 'Car::Black' 保存的。在创建记录时,我也尝试显式保存 purchasable_type。没运气。请帮忙。
【问题讨论】:
-
我认为这是正确的...您正在使用 STI 和多态...在这种情况下应该设置基类类型...查看多态关联部分了解更多详细信息...@ 987654321@
-
我之前确实看过那个链接。还是谢谢!
-
检查一下...这可能会有所帮助archonsystems.com/devblog/2011/12/20/…
-
再次感谢。仍然没有帮助..
标签: ruby-on-rails ruby inheritance associations polymorphic-associations