【问题标题】:Sidekiq error NoMethodError: undefined method `:send_welcome_email' for "AdminMailer":StringSidekiq错误NoMethodError:未定义的方法`:“AdminMailer”的send_welcome_email':String
【发布时间】:2017-04-27 00:13:49
【问题描述】:

我正在尝试使用 Sidekiq 发送电子邮件,如下所示:

AdminMailer.delay.send_welcome_email(1)

但我收到此错误:

NoMethodError: undefined method `:send_welcome_email' for
"AdminMailer":String

我最近从 Rails 3.2 升级到 Rails 4.0,我的 Ruby 版本是 2.1.1。升级后我们遇到了这个问题。

我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby actionmailer sidekiq


    【解决方案1】:

    Sidekiq 有另一种语法。 你应该这样做:

    AdminMailer.send_welcome_email(1).deliver_later
    

    Sending emails with ActionMailer and Sidekiq”中有例子。

    【讨论】:

    • 感谢 nautgrad。但是他们的文档说上面的语法应该可以工作。它曾经在我的旧版本中工作。同样在sidekiq中,我可以延迟调用类方法对吗?即使这样也会引发同样的错误。
    • 问题是 ruby​​ 不能像类一样识别AdminMailer。它认为这是字符串,这不是预期的行为。
    • 哦,我明白了...我猜宝石中存在冲突,它覆盖了 sidekiq 的延迟方法。让我尝试其他方式.. 谢谢
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2018-03-04
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    相关资源
    最近更新 更多