我试图实现一组我放在纸上的模型,但遇到了一个问题,我认为最好的解决方法是使用多表继承设置。然而,在谷歌搜索后我发现 ActiveRecord 不支持 MTI ......尽管有很多文章展示了如何做到这一点。这让我想知道如果没有实现我是否正确设置了我的模型。所以我的问题是为什么 Active Record 没有内置对 MTI 的支持?如果您对我的模型设置“将会”是什么样子感到好奇,我会把它留在下面。
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
“人”可以是用户
、前 玩家
和/或教练
。
最佳答案
Rails 6.1+ 委托(delegate)类型
Rails 6.1 添加了一种“原生”方式来通过委托(delegate)类型
实现多表继承。
请参阅 the corresponding PR了解详情。
关于ruby-on-rails - 为什么 Rails 中的 ActiveRecord 不支持多表继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27848263/