我试图实现一套我放在纸上的模型,遇到了一个问题,我认为最好的方法是使用多表继承设置。但是,谷歌搜索后,我发现ActiveRecord不支持MTI ......即使有大量文章显示如何完成。这让我想知道,如果没有实施,我是否正确设置了模型。所以我的问题是为什么Active Record不支持MTI?如果你对我的模型设置“将会”看起来像我会在下面留下好奇。为什么ActiveRecord in Rails不支持多表继承?
class Player < ActiveRecord::Base; end
class CollegePlayer < Player; end
class ProPlayer < Player; end
如果能够向玩家CollegePlayer和ProPlayer的一种或两种。或者,在另一个例子......
class Person < ActiveRecord::Base; end
class User < Person; end
class Player < Person; end
class Coach < Person; end
当一个 “人” 可能是一个User
,前Player
,和/或Coach
。
我倾向于将诸如”大学球员“之类的东西视为球员所做的事情(或者他们扮演的角色)履行)而不是其身份的一部分。同样,如果你有一个人,那么“玩家”和“教练”就是角色,而不是那个人的固有属性。我认为你的模型设置将字面上的“是一个”概念。 –
@ muistooshort你可能是对的,我只是将其作为附加信息提供。我主要问为什么Active Record中没有多表继承支持。 – daveomcd