синхронизация двух записей моделей - бесконечный цикл обратных вызовов - PullRequest
2 голосов
/ 21 октября 2011

У меня есть 2 записи одной и той же модели, и я хочу синхронизировать некоторые данные из этих записей.

Я собирался сделать обратный вызов after_save (или, возможно, наблюдатель), чтобы вызвать обновлениедругая запись, но я боюсь, что это вызовет бесконечный цикл сохранений, потому что другая запись вызовет обратный вызов.

Я прочитал здесь , что вы можете обойти обратные вызовы при сохранении, ноэти подходы кажутся хакерскими и непоследовательными между рельсами 2 и 3 (мы переходим к рельсам 3 через пару месяцев).

Есть ли лучший вариант?

1 Ответ

0 голосов
/ 22 октября 2011

Вы можете создать attr_accessor:

attr_accessor :dont_run_callback

after_save :my_callback

def my_callback
  MyModel.find(1).update_attributes(..., :dont_run_callback => true)  unless dont_run_callback
end

что-то в этом роде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...