2012-08-07 28 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

相關問題