在我的代码中,我有一个模型,其名称包含字符串“缓存”。例如:

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/

10-12 01:07