這可能很簡單,但我正在撕裂我的頭髮。我有一個腳本,我想每天運行,腳本更新了大量記錄(跨越20種不同的模型),我並不在乎維護這些質量更改的審計跟蹤(或者想要觸發1000個通知) 。我真的需要一種暫時禁用acts_as_audited和動作郵件程序的方法,運行腳本,然後重新啓用它們。如何暫時禁用acts_as_audited和actionmailer,運行一個腳本然後重新啓用
有沒有簡單的方法來做到這一點?
我使用稀土元素/導軌2.3
這可能很簡單,但我正在撕裂我的頭髮。我有一個腳本,我想每天運行,腳本更新了大量記錄(跨越20種不同的模型),我並不在乎維護這些質量更改的審計跟蹤(或者想要觸發1000個通知) 。我真的需要一種暫時禁用acts_as_audited和動作郵件程序的方法,運行腳本,然後重新啓用它們。如何暫時禁用acts_as_audited和actionmailer,運行一個腳本然後重新啓用
有沒有簡單的方法來做到這一點?
我使用稀土元素/導軌2.3
想通了最後,這個博客帖子:http://blog.viarails.net/2009/1/29/disabling-callbacks-in-an-activerecord-data-migration這個計算器問題幫助How can I avoid running ActiveRecord callbacks?。
爲了讓它更進一步,您還可以禁用在回調鏈中被調用的特定方法(讓我們說一個before_save完成的通知) YourModel.before_save_callback_chain.select {| m | m.method ==:your_notification_method_symbol} .clear
只是發佈這個,所以其他人可能會發現它......享受!
好吧,我想出瞭如何禁用審計,其簡單的class.disable_auditing和class.enable_auditing。儘管如此,我們仍然在尋找ActionMailer的幫助,我們使用的是gmail確認,所以我沒有在配置文件中使用perform_deliveries選項(我不想在任何情況下修改配置文件,需要在運行時禁用並重新啓用通知的內容)...任何人? –