gpt4 book ai didi

ruby-on-rails - Rails seeds.rb : How can I skip multiple callbacks using Class. skip_callback?

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:26 25 4
gpt4 key购买 nike

在我的 seeds.rb 文件中,我正在创建类 Job 的多个对象。作业有这些回调:

class Job < ActiveRecord::Base
...
after_create :notify_by_email, :notify_by_text
...
end

我想避免在开发和暂存过程中生成这些电子邮件或文本消息(开发当前用户 LetterOpener,让这些电子邮件在我的浏览器中弹出是一件痛苦的事情。我只想能够运行 rake db: seed 并忽略终端)。在 StackOverflow 的另一个问题中,我发现我可以使用这个:

Job.skip_callback(:create, :after, :notify_by_email)

所以我尝试了以下方法来跳过一行中的两个回调:

Job.skip_callback(:create, :after, { :notify_by_email, :notify_by_text })

但是,这引发了错误。我检查了 ActiveSupport API但它并不表示一种方法来做我想做的事情,所以我求助于这个:

  Job.skip_callback(:create, :after, :notify_by_email)
Job.skip_callback(:create, :after, :notify_by_text)

有没有一种方法可以像上面尝试的回调散列一样做到这一点?

最佳答案

您可能会混淆 skip_before_filter(它是 Controller 中的类似表亲)。

您可以通过添加 :if 或 :unless 选项跳过 after_create

after_create :notify_by_email, if: :new_user

def new_user
# logic to determine if user is new
end

我还建议将您的电子邮件发送到 Controller 并避免整个问题。

关于ruby-on-rails - Rails seeds.rb : How can I skip multiple callbacks using Class. skip_callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com