我有一个模型Sport。使用单表继承我有 2 个其他模型Cricket,Football所以
class Cricket < Sport and class Football < Sport
我将这两个模型放在名为 sports 的模型目录中的子文件夹中。我将类型列添加到Sport并将值设置为Cricketor Football,无论是什么合适的。此外,我能够使用Cricket.newor创建对象Football.new。
这种结构在 Rails 3.2.6 之前都可以正常工作。
但是现在使用 Rails 3.2.11,子文件夹中的任何模型文件都必须模块化。所以,它现在看起来像这样:
module Sports
class Cricket < Sport
现在,rails 无法加载类Cricket或Football单独加载。所以,Cricket.new还是Football.new不行。如果我这样做Sports::Cricket.new,那么这对我来说是个问题,因为类型列必须是类名,即Sports::Cricket。
我应该在 Rails 3.2.11 中做什么才能使单表继承起作用?我不想将值Sports::Cricket放在我的类型列中。另外,我不想删除子目录结构。