【问题标题】:Rails 3: Delayed jobs, method 'delay' not knownRails 3:延迟作业,方法“延迟”未知
【发布时间】:2011-01-14 00:56:15
【问题描述】:

我已将delayed_job 作为Gem 安装在我的Gemfile 中。但是,当我尝试在控制器中使用延迟时:

def send_warn_admin_email
    UserMailer.delay.warn_admin_email(self).deliver
  end

我得到:undefined methoddelay' for UserMailer:Class`

什么会导致这个问题?

谢谢

【问题讨论】:

  • 抱歉,您确定安装了捆绑包吗?
  • 在 Rails 控制台中,尝试输入Delayed 并按回车键。它是否抱怨缺少常量?
  • @Jack,是的,我确实运行了捆绑安装。 @Brian,不,没有错误..
  • 看来我没有延迟工作表,即使迁移运行也很艰难。 ?
  • 该代码看起来也很可疑。我假设您希望 .deliver 调用异步,而不是创建电子邮件。 UserMail.warn_admin_email(self).delay.deliver 有效吗?

标签: ruby-on-rails ruby-on-rails-3 delayed-job


【解决方案1】:

来自文档。

Due to how mailers are implemented in Rails 3, we had to do a little work

让delayed_job开始工作。

# without delayed_job
Notifier.signup(@user).deliver

# with delayed_job
Notifier.delay.signup(@user)


Remove the @.deliver@ method to make it work. It's not ideal, but it's

目前我们能做的最好的。

再见

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2012-04-20
    • 2013-11-26
    • 1970-01-01
    • 2023-04-03
    • 2016-03-29
    • 1970-01-01
    相关资源
    最近更新 更多