4

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

class DataCache < ActiveRecord::Base

表名是data_caches. 当我运行时:

"data_caches".classify.constantize.new

初始化模型,我收到这样的错误:

NameError: uninitialized constant DataCach

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

4

2 回答 2

5

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

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

现在在 rails 控制台试一下这个词:

>> "caches".singularize
=> "cache"
>> "cache".pluralize
=> "caches"
于 2012-07-07T21:21:39.780 回答
2

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

于 2012-07-07T14:25:50.557 回答