为什么我会收到“未定义的方法`mass_assignment_sanitizer ='”错误?

时间:2012-01-01 18:43:54

标签: 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)

我的宝石文件是:

source 'https://rubygems.org'
gem 'rails'
gem 'sqlite3'
gem 'mysql'
gem 'rspec-rails'

当我运行bundle命令时,它会在没有错误的情况下执行。

我也尝试修改我的Gemfile,如:

gem 'rails' ,'3.1.0'

和:

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

但它给了我同样的错误。

2 个答案:

答案 0 :(得分:2)

尝试安装rails 3.2

gem install rails --pre

将mysql gem添加到您的包中并运行

bundle install

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

这应该有效。

答案 1 :(得分:0)

对于Rails 3.1,如果你有一个 MySQL 数据库,你可能应该使用mysql2 gem,而你可能不需要sqlite3 gem。您使用 SQLite MySQL 数据库吗?如果您使用 SQLite ,那么您可能不需要mysqlmysql2 gem。也许是宝石问题?