Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法“质量分配”消毒剂=';对于ActiveRecord::Base:Class(NoMethodError)_Ruby On Rails_Rspec - Fatal编程技术网

Ruby on rails 未定义的方法“质量分配”消毒剂=';对于ActiveRecord::Base:Class(NoMethodError)

Ruby on rails 未定义的方法“质量分配”消毒剂=';对于ActiveRecord::Base:Class(NoMethodError),ruby-on-rails,rspec,Ruby On Rails,Rspec,我正在通过MichaelHartl的RubyonRails教程学习Rails。在上,我需要运行以下命令来运行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':

我正在通过MichaelHartl的RubyonRails教程学习Rails。在上,我需要运行以下命令来运行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
和,但是没有任何东西可以消除未定义的方法错误

您是否从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\u accessible
的任何地方都给了我同样的错误

它原来是一个“活动记录”的gem,在我不希望它更新到4.0时被更新了。因为我使用的是Padrino应用程序,所以我必须在Gemfile中执行以下操作:

gem 'activerecord', '= 3.2.12', :require => "active_record"

这解决了所有问题,而且我不必注释掉
数据库.rb中的行

哦,还有,当我尝试运行
rspec spec/
时,我得到了一个
未找到的命令
错误。请尝试不带尾随斜杠<代码>rspec规范。(只是在想)不幸的是,我仍然得到了相同的错误,没有斜杠。如果你把config.active\u record.mass\u assignment\u sanitizer=:strict放在config/environments/test.rb中呢?你在用rails2吗?我在用Rails3.1。我添加了一行代码,但仍然出现错误。在从3.2降级到3.1.2后,这对我来说非常有效!由于TS使用rspec,所以他应该在test.rb中注释掉该行,而不是development.rb在从Rails 3.2升级到4.2时遇到了同样的问题并进行了修复