单Table 继承还是多态?

Single Table Inheritance or Polymorphic?

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

事件:

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

我希望能够创建一个婚礼或与此相关的任何其他事件,并让它继承事件模型中所有事件的共同特征。当我尝试使用 STI 执行此操作时,Wedding 模型仅具有 Event 模型的特征。我该如何实施?

这行不通

class Wedding < Event

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

end

由于 Rails 仅支持开箱即用的 STI,如果您真的想要 MTI,可以试一试 ActiveRecord::ActsAs gem。

他们的跟踪器中有几个未解决的问题,但开发似乎有些活跃。