【问题标题】:How to temporarily disable acts_as_audited and actionmailer, run a script then reenable如何暂时禁用acts_as_audited 和actionmailer,运行脚本然后重新启用
【发布时间】:2011-11-14 14:48:15
【问题描述】:

这可能很简单,但我正在扯掉我的头发。我有一个我想每天运行的脚本,该脚本会更新大量记录(跨越 20 个不同的模型),我并不真正关心维护这些大规模更改的审计跟踪(或想要触发 1000 条通知) .我真的需要一种暂时禁用acts_as_audited 和action mailer 的方法,运行脚本然后重新启用它们。

有简单的方法吗?

我正在使用 ree/rails 2.3

【问题讨论】:

  • 好的,所以我想出了如何禁用审计,它只是 class.disable_auditing 和 class.enable_auditing。虽然仍在寻找有关 ActionMailer 的帮助,但我们正在使用 gmail 确认,所以我的配置文件中没有 perform_deliveries 选项(无论如何我都不想修改配置文件,需要一些可以在运行时禁用和重新启用通知的东西)...有人吗?

标签: ruby-on-rails actionmailer acts-as-audited


【解决方案1】:

终于想通了,这篇博文:http://blog.viarails.net/2009/1/29/disabling-callbacks-in-an-activerecord-data-migration,这个 stackoverflow 问题帮助了How can I avoid running ActiveRecord callbacks?

更进一步,您还可以通过执行此操作禁用在回调链中调用的特定方法(比如说在 before_save 完成的通知) YourModel.before_save_callback_chain.select {|m| m.method == :your_notification_method_symbol}.clear

只是发布这个,以便其他人可以找到它......享受!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    相关资源
    最近更新 更多