Ruby 为什么我会得到一个;未定义的方法“质量分配”消毒剂='&引用;错误?

Ruby 为什么我会得到一个;未定义的方法“质量分配”消毒剂='&引用;错误?,ruby,ruby-on-rails-3,activerecord,Ruby,Ruby On Rails 3,Activerecord,我正在Windows 7上使用Rails 3.1.3 创建新模型时出现以下错误: C:/Ruby192/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) 我的gem文件是

我正在Windows 7上使用Rails 3.1.3

创建新模型时出现以下错误:

C:/Ruby192/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)
我的gem文件是:

source 'https://rubygems.org'
gem 'rails'
gem 'sqlite3'
gem 'mysql'
gem 'rspec-rails'
当我运行
bundle
命令时,它执行时不会出错

我还尝试修改我的文件,如:

gem 'rails' ,'3.1.0'
以及:

gem 'rails' ,:git => 'git@github.com:rails/rails.git'

但是它给了我同样的错误。

对于Rails 3.1,如果您有MySQL数据库,您可能应该使用
mysql2
gem,并且您可能不需要
sqlite3
gem。您使用的是SQLite还是MySQL数据库?如果使用SQLite,则可能不需要
mysql
mysql2
gem。可能是gem问题?

尝试安装rails 3.2

gem install rails --pre
并将mysql gem添加到您的包中并运行

bundle install
然后尝试创建模型并运行测试用例


那应该行。

可能重复:谢谢你指出。。但我认为它有点不同:我可以运行我的每个规范,我的本地rails命令运行良好。唯一不起作用的是生成命令。好的,我想我们可以排除这个问题。可能是Ruby 1.9和Rails 3.1的问题。