0

Rails 文档并没有说得很清楚,但似乎 update_attributes 的所有使用都构成批量分配,如果使用 attr_accessible,则所有属性都需要列入白名单。update_attributes 的文档没有提到这一点:

update_attributes(attributes)

使用传入的 Hash 中的所有属性更新此资源并请求保存记录。

如果由于连接或远程服务错误而导致保存失败,则会引发异常。如果由于资源无效而导致保存失败,则将返回 false。

注意:虽然此请求可以使用资源的部分属性集进行,但请求的完整主体仍将在保存请求中发送到远程服务。

是否有任何其他我应该注意的方法触发这种质量分配限制?

4

2 回答 2

1

我认为你应该看这里:http ://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html

并观看这个非常古老且非常短的 railscast http://railscasts.com/episodes/26-hackers-love-mass-assignment

这将对“大量分配”主题有很大帮助:)

于 2011-09-15T15:44:59.043 回答
0

使用批量分配时,您应该使用 attr_accessible 定义哪些属性可以更新,或者使用 attr_protected 定义哪些不应该更新。

有关批量分配的更多信息: https ://stackoverflow.com/questions/tagged/mass-assignment

于 2011-09-15T17:51:54.057 回答