【问题标题】:rake jobs:work error, uninitialized constantrake 作业:工作错误,未初始化的常量
【发布时间】:2010-10-15 06:15:06
【问题描述】:

我正在使用delayed_job 2.1.0.pre2, 在我的库中,我有一个名为 MailingJob(mailing_job.rb) 的类,它有一个名为 perform 的方法。 正如文档所说,在我的控制器中,我将一个新的 MailingJob 对象放在了我的延迟作业队列中。 但是当我运行“rake jobs:work”命令时,它总是告诉我它找不到“MailingJob”,是否有必要要求 mailing_job.rb 文件?如果是,我应该把这个放在哪里? 谢谢!

【问题讨论】:

  • 如果没有更好的信息,几乎不可能帮助您。我们真的需要看代码。

标签: ruby-on-rails delayed-job


【解决方案1】:

mailing_job.rb 必须位于 Rails 可以找到并自动加载它的位置。你在哪里有那个文件?除非它在 ​​app/models 或类似的地方,否则它不会自己找到它。

我在app/jobs 有我的工作,但这很有效,因为我在environment.rb Rails::Initializer.run 块中将该路径添加到Rails 加载路径:

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

【讨论】:

  • 好线索,我把“mailing_job.rb”放到了我的RAILSAPP/lib目录中,我以为它会自动加载,当rails运行时lib目录会自动加载吗?
  • 不,lib 默认不在加载路径中。不过,您可以添加一个初始化程序来要求您从 lib 中获取您的东西。
猜你喜欢
  • 2013-06-21
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多