是否可以在包含名称中的数字的rails中使用表?
我有一张名为photo_2014_hierarchies
的表格其模型保存为photo_2014_hierarchy.rb
在我内部使用
class Photo2014Hierarchy < ActiveRecord::Base
适用于此db
中的其他表然而,当我尝试在控制器中使用此表时,我得到了
NameError: uninitialized constant Photo2014Hierarchy
答案 0 :(得分:2)
这不起作用的原因是在underscore
方法中检测字边界:
> "Photo2014Hierarchy".underscore
=> "photo2014_hierarchy"
如您所见,该数字不被视为要用下划线划分的单词。在您的情况下,这意味着您的文件必须以photo2014_hierarchy.rb
和您的表photo2014_hierarchies
命名。
注意:仅当您无法相应更改表名时才需要table_name
,因为Rails知道如何复杂化层次结构。
> "Photo2014Hierarchy".pluralize.underscore
=> "photo2014_hierarchies"
答案 1 :(得分:0)
有可能,是的。我不打算创建脏的模型名称,而是考虑在模型中使用table_name
,如果你不得不使用传统的命名约定。