假设你正在用户控制器中,并且希望根据一些可用参数更改@user的名称。
我想知道以下两者之间是否有任何区别:
@user.name = params[:user][:name]
或者
@user.assign_attributes({:name=> params[:user][:name]})
提前感谢您!
假设你正在用户控制器中,并且希望根据一些可用参数更改@user的名称。
我想知道以下两者之间是否有任何区别:
@user.name = params[:user][:name]
或者
@user.assign_attributes({:name=> params[:user][:name]})
提前感谢您!
=
(例如@user.name = params[:user][:name]
) 直接调用属性设置器,没有进行安全检查。而assign_attributes
会对传入的值进行安全性检查。assign_attributes
允许你通过传递一个属性哈希表来设置特定的批量赋值安全角色,其中键匹配属性名称(与列名再次匹配),并且可以使用:as选项指定角色名称。