升级到Rails 4时,批量分配失败

时间:2013-07-29 03:49:16

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 strong-parameters attr-accessible

deprecated_mass_assignment_security.rb:17:in `attr_accessible': `attr_accessible` is extracted out of Rails into a gem. Please use new recommended protection model for params(strong_parameters) or add `protected_attributes` to your Gemfile to use old one. (RuntimeError)

我尝试了消息所说的内容,将gem 'strong_parameters'添加到Gemfile

但当我rails s时,我收到上述错误。

更新

我试过了:

config.active_record.whitelist_attributes = true
<{1>}中的

,还有confgi/application.rb,但实际上我并不理解该选项。

2 个答案:

答案 0 :(得分:6)

attr_accessibleattr_protected已退出Rails 4并被提取到protected_attributes。将其捆绑到您的应用程序中,然后您应该能够再次使用它们。

话虽如此,建议您最近使用strong_parameters代替attr_accessible,因此最终您需要迁移到该版本。

答案 1 :(得分:4)

在您的Gemfile中,您会注意到gem 'protected_attributes'已被删除。 删除哈希。 运行bundle install

但是由于protected_attributes已被弃用并且将来可能会消失,请使用上面帖子中提到的strong_parameters。

有关strong_parameters的详细信息,请参阅此link