Rails升级:assign_attributes的参数数量错误(2表示1)

时间:2015-04-30 09:09:13

标签: ruby-on-rails ruby ruby-on-rails-4

嗨我已经从rails 3.2.12升级到4.0.0大多数人认为现在工作正常,但我收到了这个错误:

enter image description here

在这种情况下是什么问题?

1 个答案:

答案 0 :(得分:6)

消息签名从两个参数更改为一个。比较v3.2.12v4.0.2

assign_attributes(new_attributes, options = {}) # 3.2.12

assign_attributes(new_attributes)               # 4.0.2

Rails 3质量分配保护已弃用,这是其中的一部分。保护质量分配的属性为extracted into a gem。从其自述文件:

  

您还可以使用:without_protection选项绕过质量分配安全性。

在版本4.x中,您不再需要:without_protection选项,因为您已经encouraged to use Strong Parameters

为了顺利升级,您可以捆绑protected_attributes gem。但请注意,"此插件将在Rails 5.0发布之前得到官方支持。"

此外,您不需要使用@user.send(:update_attributes, …),您只需使用@user.update_attributes(…)