小编典典

attr_accessor 和 attr_accessible 的区别

all

attr_accessor在 Rails 中,和 和有什么区别attr_accessible?据我了解,
usingattr_accessor用于为该变量创建 getter 和 setter
方法,以便我们可以访问变量,如Object.variableor Object.variable = some_value

我读到这attr_accessible使得外部世界可以访问该特定变量。有人可以告诉我有什么区别吗


阅读 70

收藏
2022-05-29

共1个答案

小编典典

attr_accessor是一个 Ruby 方法,它可以创建一个 getter 和一个 setter。attr_accessible是一种
Rails 方法,允许您将值传递给批量赋值:new(attrs)update_attributes(attrs).

这是一个集体作业:

Order.new({ :type => 'Corn', :quantity => 6 })

您可以想象订单也可能有折扣代码,例如:price_off。如果您在阻止恶意代码这样:price_off做时不进行标记:attr_accessible

Order.new({ :type => 'Corn', :quantity => 6, :price_off => 30 })

即使您的表单没有 的字段:price_off,如果它在您的模型中,默认情况下它也是可用的。这意味着精心制作的 POST
仍然可以设置它。使用attr_accessible白名单可以批量分配的那些东西。

2022-05-29