2010-10-14 58 views
3

我使用的是delayed_job 2.1.0.pre2, ,在我的lib中有一个名为MailingJob(mailing_job.rb)的类,它有一个名为perform的方法。 在我的控制器中,我将一个新的MailingJob对象放入我的delayed_job队列中,如doc所示。 但是当我运行“rake jobs:work”命令时,它总是告诉我它无法找到“MailingJob”,是否需要mailing_job.rb文件?如果是,我应该在哪里放置? 谢谢!rake作业:工作错误,未初始化的常量

+1

这是几乎不可能帮你没有更好的信息。我们真的需要看代码。 – 2010-10-14 06:36:23

回答

7

mailing_job.rb必须位于Rails可以找到并自动加载它的位置。你有哪些文件?除非它在app/models或类似的东西,它不会自己找到它。

我有我的工作在app/jobs但这个工作,因为我添加了路径Rails的负载路径在environment.rbRails::Initializer.run块:

config.load_paths << "#{Rails.root}/app/jobs" 
+0

好的线索,我把“mailing_job.rb”放到我的RAILSAPP/lib目录中,我以为它会自动加载,当rails运行时lib目录会自动加载吗? – 2010-10-15 01:17:56

+0

不,''lib'默认不在加载路径中。尽管你可以添加一个初始化器来从lib中获取你的东西。 – tfe 2010-10-15 02:40:14

+0

非常感谢!我会稍后再试,谢谢 – 2010-10-15 02:51:51

相关问题