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