【发布时间】:2016-09-29 21:34:36
【问题描述】:
我已经安装了 Rails 5.0.0.rc1 以及 DelayedJob gem。我有一些代码在以前的 Rails 应用程序(Rails4.2)中运行良好,但由于某种原因,它现在在 heroku 上的生产中一直失败。
简而言之,我正在尝试使用 DelayedJob 的“handle_asynchronously”方法发送电子邮件。我已经创建了邮件程序并在我的模型中添加了回调,但是当我在 Heroku 上提交表单时,我看到了一个 Rails 错误屏幕。在我的日志中,我看到一条错误消息,指出“ArgumentError:参数数量错误(给定 1,预期为 0)”。如果我删除了“handle_asynchronously”方法,那么我的回调就会起作用。但是,我显然想使用 DelayedJob 发送邮件等。
我的代码如下所示:
FooModel.rb
....
after_create :send_welcome_mail
def send_welcome_mail
FooMailer.welcome_email(self).deliver
end
handle_asynchronously :send_welcome_mail
就像我说的那样,这段代码在 Rails4 中完美运行。有人可以帮助我吗?我需要在 Rails5 中做一些不同的事情吗?
【问题讨论】:
-
你能发布完整的错误跟踪吗?至少有几条顶线。
-
你对模型有什么属性?名称冲突也可能发生这种情况。
标签: ruby-on-rails ruby heroku delayed-job