2012-07-07 41 views
4

在我的代碼中,我有一個模型,其名稱包含字符串'cache'。例如:模型的名稱包含'cache'

class DataCache < ActiveRecord::Base 

和表名是data_caches。當我運行:

"data_caches".classify.constantize.new 

初始化模式,我得到這樣一個錯誤:

NameError: uninitialized constant DataCach 

爲什麼不這項工作?我預計「DataCache」,但得到「DataCach」。

回答

2

在這種情況下,您應該幫助rails瞭解如何將單數轉換爲複數。嘗試用此名稱更新config/initializers/inflections.rb。我認爲它應該解決問題。

5

看看Rails中的Inflections類。下面的文本添加到config/initializers/inflections.rb類:

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

現在在軌控制檯嘗試了一句話:

>> "caches".singularize 
=> "cache" 
>> "cache".pluralize 
=> "caches" 
相關問題