如果对象(存储在数据库中)是“公共”的,如何跳过保存和更新进程?

时间:2012-02-26 15:37:26

标签: ruby-on-rails ruby ruby-on-rails-3 class ruby-on-rails-3.1

我正在使用Ruby on Rails 3.1,我希望“保护”“特定”对象(存储在数据库中)不被更新。也就是说,如果对象是publicprivate,我的类有一个用于存储的属性,我希望只有在private时才能更新该对象,否则执行没有(也就是说,不要更新对象,静默)。

换句话说,如果对象是public,我想跳过保存和更新流程。不再。

我应该如何继续完成?

P.S。:也许我可以使用“条件”/“动态”attr_accessible属性,但我不确定这种方法是否遵循“Ruby on Rails方式”。此外,我不知道是否可以通过使用Ruby on Rails来实现这一点。

1 个答案:

答案 0 :(得分:0)

这听起来像验证的完美案例。

validate :is_not_protected

def is_not_protected
  self.errors.add(:base, 'This object is protected and cannot be changed.') if self.protected?
end