我想开始在我的模型中使用 attr_accessible 来解决质量分配问题。我了解它是如何工作的,并且已经尽可能多地进行了研究。
我不明白的是使用 update_attributes(params[:my_form]) 或 create(params[:my_form]) 并一一设置字段之间的区别?两者不一样脆弱吗?
没有 attr_accessible 和这样做有什么区别......
@model_object = ModelObject.new
@model_object.create(params[:model_object_params])
并拥有 attr_accessible 并这样做......
@model_object = ModelObject.new
@model_object.field1 = params[:model_object_params][:field1]
@model_object.field2 = params[:model_object_params][:field2]
@model_object.field3 = params[:model_object_params][:field3]
@model_object.save!
这两种创建记录的方法不是一样脆弱吗?黑客/破解者可以向这两种方法发送一个 url,并且两者都会做同样的事情,对吧?
还是使用 attr_accessible 并逐个更新字段会做一些不同的事情或以某种方式变得更安全?
我发现所有这些使用 attr_accessible 的方法对我来说没有任何意义。它似乎以两种不同的方式做同样的事情。我错过了什么?
谢谢。