Rails“大规模任务” - 究竟是什么构成的呢?

时间:2011-09-15 15:30:31

标签: ruby-on-rails attributes mass-assignment

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

  

update_attributes(attributes)

     

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

     

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

     

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

我应该注意哪些其他方法可以触发这种质量分配限制吗?

2 个答案:

答案 0 :(得分:1)

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

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

这将对“质量分配”主题提供很多帮助:)

答案 1 :(得分:0)

使用质量赋值时,应使用attr_accessible定义可更新的属性,或使用attr_protected定义不应更新的属性。

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