attr_readonly是否存在类似白名单的反转?

时间:2011-02-16 22:41:54

标签: ruby-on-rails security activerecord

attr_protected允许您将特定列标记为protected,而不是attr_accessible,它允许您将除给定集之外的所有列标记为受保护。 attr_readonly允许您将特定列标记为只读。是否存在反转,允许您将除给定集之外的所有列标记为只读?

2 个答案:

答案 0 :(得分:1)

也许您在attr_accessible之后,它指定了“可分配质量”的列(例如,它们可以传递到createupdate_attributes)。实际上,这意味着它们不会被写入。

设置此属性:

@user.admin = true
@user.save

答案 1 :(得分:0)

这有点像黑客,但我发现这有效:

after_initialize do
  mutable_attributes = ["status", "updated_at"]
  self.class.attr_readonly *(self.attributes.keys - mutable_attributes)
end