Ruby on rails 从Rails 3.2升级到Rails 4时,rake为什么会给出';未初始化的常量ActiveModel::禁止指定属性保护';?

Ruby on rails 从Rails 3.2升级到Rails 4时,rake为什么会给出';未初始化的常量ActiveModel::禁止指定属性保护';?,ruby-on-rails,Ruby On Rails,我目前正在尝试将Rails 3.2应用程序升级到Rails 4。我通过引用Rails的正确版本更新了我的Gemfile: gem 'rails', '~>4.0.0' 以及根据删除资产标题 接下来,我尝试运行rakerails:update。它给了我这个错误: rake中止! NameError:未初始化的常量ActiveModel::禁止属性保护 /home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active

我目前正在尝试将Rails 3.2应用程序升级到Rails 4。我通过引用Rails的正确版本更新了我的
Gemfile

gem 'rails', '~>4.0.0'
以及根据删除
资产
标题

接下来,我尝试运行
rakerails:update
。它给了我这个错误:

rake中止!
NameError:未初始化的常量ActiveModel::禁止属性保护
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/attribute\u assignment.rb:6:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/attribute\u assignment.rb:3:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/attribute\u assignment.rb:2:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/base.rb:300:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/base.rb:281:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/base.rb:22:in`'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.13/lib/active\u record/railtie.rb:38:in'block in'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/railtie.rb:201:in'instance_exec'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/railtie.rb:201:在“运行任务中的块”中
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/railtie.rb:201:in'each'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/railtie.rb:201:在“运行任务块”中
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/application.rb:253:在“运行中的块任务块”中
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/engine/railties.rb:17:in'each'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/engine/railties.rb:17:in'each'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/application.rb:253:在“运行任务块”中
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/engine.rb:446:in'load_tasks'
/home/vagrant/.rvm/gems/ruby-2.2.0/gems/railties-4.0.13/lib/rails/railtie/configurable.rb:30:in'method_missing'
/流浪者/浪荡子:7:in`'
(通过使用--trace运行任务查看完整跟踪)

导致此错误的原因是什么?

我唯一能在网上找到此错误的地方是

我在那个页面上搜索了
ActiveModel::ForbiddenAttributesProtection
,找到了它

当我阅读该评论和以下内容时,我发现,其中说:

Rails 3.2应用程序只需添加强参数gem AFAIK,就可以开箱即用

再次查看我的
Gemfile
,我意识到问题出在哪里。它包含以下行:

gem 'strong_parameters'
问题是
strong_参数
gem重复了Rails 4的工作方式,允许在Rails 3.2中使用更新、更好的代码。因此,它与Rails 4中的内置功能冲突

我从GEM文件中删除了该行,在运行
bundle
之后,
rake
命令起作用


编辑:重新启动
unicorn
后,我在日志中遇到了类似的错误。我删除了
config/initializers/strong_parameters.rb
,但这似乎没有什么帮助。然而,在重新启动我的虚拟机后,它工作正常。

我唯一能在网上找到此错误的地方是

我在那个页面上搜索了
ActiveModel::ForbiddenAttributesProtection
,找到了它

当我阅读该评论和以下内容时,我发现,其中说:

Rails 3.2应用程序只需添加强参数gem AFAIK,就可以开箱即用

再次查看我的
Gemfile
,我意识到问题出在哪里。它包含以下行:

gem 'strong_parameters'
问题是
strong_参数
gem重复了Rails 4的工作方式,允许在Rails 3.2中使用更新、更好的代码。因此,它与Rails 4中的内置功能冲突

我从GEM文件中删除了该行,在运行
bundle
之后,
rake
命令起作用

编辑:重新启动
unicorn
后,我在日志中遇到了类似的错误。我删除了
config/initializers/strong_parameters.rb
,但这似乎没有什么帮助。然而,在重新启动我的虚拟机后,它工作正常