Как временно отключить actions_as_audited и actionmailer, запустить скрипт и затем снова включить - PullRequest
1 голос
/ 11 сентября 2011

Это может быть довольно просто, но я вырываю волосы. У меня есть скрипт, который я хочу запускать ежедневно, он обновляет тонну записей (по 20 различным моделям), и я действительно не беспокоюсь о сохранении журнала аудита этих массовых изменений (или хочу вызвать 1000 уведомлений) , Мне действительно нужен способ временно отключить activ_as_audited и почтовой программы, запустить скрипт и затем снова включить их оба.

Есть ли простой способ сделать это?

Я использую ри / рельсы 2.3

1 Ответ

1 голос
/ 12 сентября 2011

Наконец-то разобрался этот пост в блоге: http://blog.viarails.net/2009/1/29/disabling-callbacks-in-an-activerecord-data-migration и этот вопрос о стекопереработке помог Как мне избежать выполнения обратных вызовов ActiveRecord? .

Чтобы продвинуться дальше, вы также можете отключить определенные методы (скажем, уведомление, которое сделано перед сохранением), которые вызываются в цепочке обратных вызовов, выполнив это YourModel.before_save_callback_chain.select {| m |m.method ==: your_notification_method_symbol} .clear

Просто опубликуйте это, чтобы другие могли его найти ... наслаждайтесь!

...