在我的代码中,我有一个模型,其名称包含字符串“缓存”。例如:
class DataCache < ActiveRecord::Base
表名是
data_caches
。当我运行时:"data_caches".classify.constantize.new
初始化模型,我收到这样的错误:
NameError: uninitialized constant DataCach
为什么这不起作用?我期望“DataCache”但得到“DataCach”。
最佳答案
看看 Rails 中的 Inflections 类。将以下文本添加到 config/initializers/inflections.rb
类:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'cache', 'caches'
end
现在在 rails 控制台中试试这个词:
>> "caches".singularize
=> "cache"
>> "cache".pluralize
=> "caches"
关于ruby-on-rails - 模型名称包含 'cache',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11375766/