模型的名称包含'缓存'

时间:2012-07-07 14:20:57

标签: ruby-on-rails models

在我的代码中,我有一个名称包含字符串'cache'的模型。例如:

class DataCache < ActiveRecord::Base

,表名为data_caches。我跑的时候:

"data_caches".classify.constantize.new

初始化模型,我收到如下错误:

NameError: uninitialized constant DataCach

为什么这不起作用?我期待“DataCache”,但得到了“DataCach”。

2 个答案:

答案 0 :(得分:5)

看看Rails中的Inflections类。将以下文本添加到config/initializers/inflections.rb类:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'cache', 'caches'
end

现在在rails控制台中尝试单词:

>> "caches".singularize
=> "cache"
>> "cache".pluralize
=> "caches"

答案 1 :(得分:2)

在这种情况下,您应该帮助rails了解如何将单数转换为复数。尝试使用此名称更新config/initializers/inflections.rb。我认为应该解决这个问题。