Ruby on rails Rails透明子关系

Ruby on rails Rails透明子关系,ruby-on-rails,activerecord,polymorphic-associations,Ruby On Rails,Activerecord,Polymorphic Associations,我有一个多态关系,我希望孩子(变形?)是完全透明的。设置是通用的: class ScheduledEvent < ActiveRecord::Base belongs_to :scheduleable, polymorphic:true #has column names like #starts_at, #ends_at end class AppointmentTypeOne < ActiveRecord::Base has_one :scheduled_

我有一个多态关系,我希望孩子(变形?)是完全透明的。设置是通用的:

class ScheduledEvent < ActiveRecord::Base
    belongs_to :scheduleable, polymorphic:true
    #has column names like #starts_at, #ends_at
end
class AppointmentTypeOne < ActiveRecord::Base
    has_one :scheduled_event, :as=>:scheduleable, :dependent=>:destroy
end
class AppointmentTypeTwo < ActiveRecord::Base
    has_one :scheduled_event, :as=>:scheduleable, :dependent=>:destroy
end

(不必
加入
包括
:scheduled\u event

听起来您想使用单表继承,而不是一个has\u-one关联。这将允许您为每个约会类型创建
ScheduledEvent
的子类:

class ScheduledEvent < ActiveRecord::Base

end

class AppointmentTypeOne < ScheduledEvent

end

class AppointmentTypeTwo < ScheduledEvent

end
class ScheduledEvent
基本上,您可以向scheduled_events表中添加一个type列,rails负责其余的工作

本论坛帖子涵盖了所有细节:

class ScheduledEvent < ActiveRecord::Base

end

class AppointmentTypeOne < ScheduledEvent

end

class AppointmentTypeTwo < ScheduledEvent

end