Как пропустить сохранение и обновление процессов, если объект (хранящийся в базе данных) является «общедоступным»? - PullRequest
1 голос
/ 26 февраля 2012

Я использую Ruby on Rails 3.1 и хотел бы "защитить" "определенные" объекты (хранящиеся в базе данных) от обновления.То есть, у моего класса есть атрибут, используемый для хранения, если объект public или private, и я хотел бы сделать возможным обновление этого объекта, только если он private, в противном случае ничего не делать (то есть делатьне обновлять объект, тихо ).

Другими словами, Я бы хотел пропустить процессы сохранения и обновления, если объект public. Не более.

Как мне поступить, чтобы достичь этого?

PS : Может быть, я могу использовать атрибуты "conditional" / "dynamic" attr_accessible, но я не уверен, что этот подход следует "Ruby on Rails Way".Кроме того, я не знаю, возможно ли это сделать с помощью Ruby on Rails.

1 Ответ

0 голосов
/ 26 февраля 2012

Это звучит как идеальный случай для проверки.

validate :is_not_protected

def is_not_protected
  self.errors.add(:base, 'This object is protected and cannot be changed.') if self.protected?
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...