是否可以在rails中使用名称中包含数字的表?
我有一个名为photo_2014_hierarchies的表
其模型保存为photo_2014_hierarchy.rb
我在里面用
class Photo2014Hierarchy < ActiveRecord::Base
对数据库中的其他表有效
但是当我试图在控制器中使用这个表时
NameError: uninitialized constant Photo2014Hierarchy
最佳答案
这不起作用的原因是在underscore
方法中检测单词边界:
> "Photo2014Hierarchy".underscore
=> "photo2014_hierarchy"
如你所见,这个数字不被认为是一个被下划线分割的单词。在您的例子中,这意味着您的文件必须命名为
photo2014_hierarchy.rb
和表photo2014_hierarchies
。注意:
table_name
只有当您不能相应地更改表名时才是必需的,因为Rails知道如何使层次结构多元化。> "Photo2014Hierarchy".pluralize.underscore
=> "photo2014_hierarchies"