未初始化的常量ActiveRecord :: Base :: StrictgitSanitizer

时间:2012-05-08 21:31:30

标签: ruby ruby-on-rails-3 rake

我正在尝试运行rake来测试我的Rails 3.2.3应用程序并且我得到了这个奇怪的错误

gems/1.9.1/gems/activemodel-3.2.3/lib/active_model/mass_assignment_security.rb:206:in `const_get': uninitialized constant ActiveRecord::Base::StrictgitSanitizer (NameError)

我的规格文件完全是空的,我还没有开始编写测试代码,只是空白自动生成的spec文件。

我需要有关如何调试此问题的想法。

1 个答案:

答案 0 :(得分:2)

我想知道您是否在{strong> config / environment.rb 中意外地将git粘贴到config.active_record.mass_assignment_sanitizer = :strict。不知何故,ActiveModel使用Strictgit作为名称的一部分,它应该使用LoggerStrict之类的内容。

我刚看了 gems / 1.9.1 / gems / activemodel-3.2.3 / lib / active_model / mass_assignment_security.rb 的第206行,其中发生了错误。围绕线206的方法是:

def mass_assignment_sanitizer=(value)
  self._mass_assignment_sanitizer = if value.is_a?(Symbol)
    const_get(:"#{value.to_s.camelize}Sanitizer").new(self)
  else
    value
  end
end

据我所知,mass_assignment_sanitizer=(value)仅在Rails本身中使用:logger:strict的值进行调用。