我有一个模型Sport
。使用单表继承我有 2 个其他模型Cricket
,Football
所以
class Cricket < Sport and class Football < Sport
我将这两个模型放在名为 sports 的模型目录中的子文件夹中。我将类型列添加到Sport
并将值设置为Cricket
or Football
,无论是什么合适的。此外,我能够使用Cricket.new
or创建对象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
放在我的类型列中。另外,我不想删除子目录结构。