Хук After_update с синтаксисом: if - PullRequest
1 голос
/ 05 марта 2012

Я хочу, чтобы мой after_update хук срабатывал, только если значение status_was для моего объекта было одним из двух значений:

after_update :set_activity_log, :if => :status_was == 'In' or :status_was == 'Out'

Я могу заставить это работать с #status_changed? Но тогда он все равно срабатывает при всех других возможных изменениях статуса, и я вынужден в любом случае добавить логику для проверки входа или выхода в методе обратного вызова.

Мне кажется, что это должно быть достижимо в определении хука, а не в методе set_activity_log.

1 Ответ

2 голосов
/ 05 марта 2012

Согласно документации вы можете передать Proc в обратный вызов ActiveRecord:

after_update :set_activity_log,
  :if => proc {|obj| obj.status_was == 'In' || obj.status_was == 'Out' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...