单表继承还是多态?

时间:2015-05-09 09:22:01

标签: ruby-on-rails ruby activerecord polymorphism single-table-inheritance

所以我的数据库结构看起来像这样:

活动:

event_id: :integer
event_type: :string
name: :string
slug: :string
user_id: :integer
start: :datetime
finish: :datetime

和婚礼我需要继承事件:

bride_name: :string
groom_name: :string
street: :string
city: :string
state: :string
zip: :integer
receptions: :text

我希望能够创建一个Wedding或任何其他事件,并让它继承Event模型中所有事件中常见的特征。当我尝试用STI做到这一点时,婚礼模型只具有事件模型的特征。我该如何实现呢?

这不起作用

class Wedding < Event

  attr_accessor :receptions, :reception_name, :reception_address, :reception_city, :reception_state, :reception_zip

end

1 个答案:

答案 0 :(得分:1)

由于Rails只支持开箱即用的STI,如果你真的想要MTI,你可以给ActiveRecord::ActsAs宝石一个镜头。

他们的追踪器中存在一些未解决的问题,但发展似乎有些活跃。