在我的代码中,我有一个名称包含字符串'cache'的模型。例如:
class DataCache < ActiveRecord::Base
,表名为data_caches
。我跑的时候:
"data_caches".classify.constantize.new
初始化模型,我收到如下错误:
NameError: uninitialized constant DataCach
为什么这不起作用?我期待“DataCache”,但得到了“DataCach”。
答案 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
。我认为应该解决这个问题。