2012-08-07 79 views

回答

7

找出这样的问题的好方法是深入探索source。我发现方法在activerecord/lib/active_record/attribute_assignment.rbCheck it out here.

assign_attributes方法实际上只是循环给定的参数并发送:name=消息到您的模型。但是,由于您可能会分配许多属性,因此需要考虑质量分配的预防措施。 (即确保该属性列为attr_accessible)。

3

=(例如@user.name = params[:user][:name])直接调用没有安全检查的属性设置器。该assign_attributes检查安全传递的价值观

从Rails的API为assign_attributes:

允许您通过传递属性的哈希值来设置一个特定的质量分配 安全角色的所有属性使用:as选项与键匹配 属性名称(与列名称匹配)和 角色名称。

Source for assign_attributes

相关问题