0

我正在尝试运行 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)

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

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

4

1 回答 1

2

我想知道您是否不小心将单词粘贴gitconfig.active_record.mass_assignment_sanitizer = :strictconfig/environment.rb 中。不知何故,ActiveModelStrictgit用作名称的一部分,它应该使用类似Loggeror的东西Strict

我刚刚查看了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

于 2012-05-09T01:17:18.203 回答