Rails表名包含数字

时间:2015-04-10 21:54:12

标签: mysql ruby-on-rails activerecord rails-activerecord rails-models

是否可以在包含名称中的数字的rails中使用表?

我有一张名为photo_2014_hierarchies

的表格

其模型保存为photo_2014_hierarchy.rb

在我内部使用

class Photo2014Hierarchy < ActiveRecord::Base

适用于此db

中的其他表

然而,当我尝试在控制器中使用此表时,我得到了

NameError: uninitialized constant Photo2014Hierarchy

2 个答案:

答案 0 :(得分:2)

这不起作用的原因是在underscore方法中检测字边界:

> "Photo2014Hierarchy".underscore
  => "photo2014_hierarchy"

如您所见,该数字不被视为要用下划线划分的单词。在您的情况下,这意味着您的文件必须以photo2014_hierarchy.rb和您的表photo2014_hierarchies命名。

注意:仅当您无法相应更改表名时才需要table_name,因为Rails知道如何复杂化层次结构。

> "Photo2014Hierarchy".pluralize.underscore
  => "photo2014_hierarchies"

答案 1 :(得分:0)

有可能,是的。我不打算创建脏的模型名称,而是考虑在模型中使用table_name,如果你不得不使用传统的命名约定。