未定义的方法“异步”(suckerpunch gem)

undefined method `async' (suckerpunch gem)

我在 background.It 中使用 sucker_punch gem 在我的 rails 应用程序中发送电子邮件曾经工作正常,但后来我突然收到此错误:

undefined method `async' for #<ActiveJob::QueueAdapters::SuckerPunchAdapter::JobWrapper:0x007f892c6c31a0>

下面是完整错误的截图:

我现在正在使用 sucker_punch 版本 2.0.1。我尝试将其降级并改用 sucker_punch 版本 1.6.0,但错误仍然存​​在。

有什么帮助吗?谢谢!

好吧,我终于明白了。在我的 sucker_punch.rb 文件中,我需要包含以下内容:

# config/initializers/sucker_punch.rb

require 'sucker_punch/async_syntax'

here

所述,使用 Rails < 5.0.0 的 Sucker Punch 版本 2.0.0+ 的用户需要这样做

他们实际上已经改变了异步语法。

使用较新版本的 sucker_punch,您应该像这样调用异步: Model.perform_async

它在此处的向后兼容性标题下提到 https://github.com/brandonhilkert/sucker_punch