ActiveRecord :: Base的未定义方法`mass_assignment_sanitizer =’:Class(NoMethodError)
我正在使用Michael Hartl的精彩Ruby on Rails教程学习Rails。 我在3.2.2节(测试驱动开发)中,我需要运行以下命令来运行我的Rails项目的rspec测试:
bundle exec rspec spec/
但它不起作用。 相反,我得到这个错误:
/Users/mh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/ activerecord-3.1.3/lib/active_record/base.rb:1088:in `method_missing': undefined method `mass_assignment_sanitizer=' for ActiveRecord::Base:Class (NoMethodError)
我已经尝试重新安装rspec
并更改我的Gemfile ,但没有任何安抚未定义的方法错误!
你是否从Rails 3.2 RC1降级了? 从development.rb中注释掉以下两行:
config.active_record.mass_assignment_sanitizer = :strict config.active_record.auto_explain_threshold_in_seconds = 0.5
虽然m818的答案可以解决问题,但如果您想在代码中的其他地方使用弃用的方法,则可能仍然会出错。
我有同样的问题,评论出那些线条摆脱了一些错误,但不是所有的,在我使用attr_accessible
地方给了我同样的错误。
事实certificate,当我不想要它时,它被更新为4.0的`active_record’gem。 由于我使用的是Padrino应用程序,我必须在Gemfile中执行此操作:
gem 'activerecord', '= 3.2.12', :require => "active_record"
这解决了所有问题,我没有注释掉database.rb
的行。