我在这里使用delayed_job gem:https://github.com/collectiveidea/delayed_job
我在观察员中有以下内容:
UserMailer.delay.msg_notification(record)
在user_mailer.rb
中class UserMailer < ActionMailer::Base
...
def msg_notification(record)
mail(
:to => "#{record.user.email}",
:subject => "Notification"
)
end
..
end
但是这个错误与:
NoMethodError (undefined method `delay' for UserMailer:Class):
有什么想法吗?感谢
答案 0 :(得分:4)
我在我们的Rails应用程序(2.3.8,但问题听起来相同)上看到了这样的问题。基本上,有三种方法可以延迟行动:
MyClass.delay.foo(arg)
handle_asynchronously :foo
放入类定义中
MyClass.send_later(:foo, arg)
无论出于何种原因,#3是我们所有开发机器中唯一一致的形式。 #1在我们的开发服务器(Ubuntu)上死亡;我们设计师的Mac上排名第二。但#3很好。
希望有所帮助!
答案 1 :(得分:2)
同时检查捆绑安装后是否重新启动了服务器。这也可能是个问题......