我将单表继承与多态关联结合使用。这是我的模型。
class ChangeInformation < ActiveRecord::Base
belongs_to :eventable, :polymorphic => true
end
class Race < ActiveRecord::Base
has_many :track_condition_changes, :as => :eventable, :class_name => "ChangeInformation"
#other associations omitted
end
class TrackConditionChange < ChangeInformation
end
change_informations 表具有以下字段:
type #sti field
change_code
eventalbe_id #polymorphic id
eventable_type #polymorphic type
description
当我使用以下创建方法时:
TrackConditionChange.create(:change_code => 1, :eventable_id => 3 :description => "test")
创建了一个 TrackConditionChange 记录,其中填充了 type 字段,但是,未填充 eventable_type 字段(应该是 Race)。我的印象是 rails 会自动填充此字段,类似于 STI 类型字段。是我有错误的印象还是我的关联设置有问题。
感谢您的输入。