1

我正在使用 ruby​​gem 延迟作业,但无法成功运行 rake 任务。我参考了https://github.com/collectiveidea/delayed_job/tree/v2.0。顺便说一句,我正在使用捆绑器。

#宝石文件
gem 'delayed_job', '~>2.0.4'
#耙文件
开始
  gem 'delayed_job', '~>2.0.4'
  需要“延迟/任务”
救援加载错误
  STDERR.puts "运行 `bundle` 来安装延迟作业"
结尾

运行 rakejobs:work --trace时,它​​显示以下错误

rake/rdoctask 已弃用。改用 rdoc/task(在 RDoc 2.4.2+ 中)
** 调用工作:工作(first_time)
** 调用 merb_env (first_time)
** 执行 merb_env
** 调用环境(first_time)
** 执行环境
** 执行工作:工作
耙中止!
匿名模块没有可供引用的名称
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:585:in `to_constant_name'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:391:in `qualified_name_for'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:104:in `rescue in const_missing'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:94:in `const_missing'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/delayed_job-2.0.6/lib/delayed/tasks.rb:13:in `block (2 levels) in '
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/gems/rake-0.9.2/bin/rake:32:in `'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/bin/rake:19:in `load'
/Users/me/.rvm/gems/ruby-1.9.2-p180@suga/bin/rake:19:in `'
任务:TOP => 工作:工作

我尝试了延迟作业耙任务失败,但它并没有解决我的问题。

谁能描述这里发生的事情?谢谢。

4

2 回答 2

1

啊! 调试 DJ 是一件很痛苦的事,你知道吗。

此错误消息:

=> Aonymous modules have no name to be referenced by

表示您拼写错误的模型之一。

例如:Categorizatoin而不是Categorizatoin.

因此,请在 DJ 中检查您的模型并检查所有模型的拼写。

于 2011-07-13T10:37:46.053 回答
1

我真的不明白为什么 DJ 在 2.3 的 rails 版本中使用 gem 无法正常工作。确保你已经安装了 gem 插件,然后按照文档中的说明进行操作。我希望这不会给你带来anonymous module问题。

于 2011-07-18T15:12:22.637 回答