2011-07-13 10 views
1

ruby​​gem delayed jobを使用していますが、rakeタスクを正常に実行できません。私はhttps://github.com/collectiveidea/delayed_job/tree/v2.0の参照を取った。ところで、私はbundlerを使用しています。ジョブのタスクの問題がレールで遅れています。2.3.5

 
#Gemfile 
gem 'delayed_job', '~>2.0.4' 
 
#Rake file 
begin 
    gem 'delayed_job', '~>2.0.4' 
    require 'delayed/tasks' 
rescue LoadError 
    STDERR.puts "Run `bundle` to install delayed_job" 
end 

熊手jobs:work --traceを実行しているが、それは私がDelayed Job Rake Task Failingを試みたが、それは私の問題を解決しませんでしたエラー

 
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+) 
** Invoke jobs:work (first_time) 
** Invoke merb_env (first_time) 
** Execute merb_env 
** Invoke environment (first_time) 
** Execute environment 
** Execute jobs:work 
rake aborted! 
Anonymous modules have no name to be referenced by 
/Users/me/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:585:in `to_constant_name' 
/Users/me/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:391:in `qualified_name_for' 
/Users/me/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:104:in `rescue in const_missing' 
/Users/me/.rvm/gems/[email protected]/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:94:in `const_missing' 
/Users/me/.rvm/gems/[email protected]/gems/delayed_job-2.0.6/lib/delayed/tasks.rb:13:in `block (2 levels) in ' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/me/.rvm/gems/[email protected]/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/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/me/.rvm/gems/[email protected]/gems/rake-0.9.2/bin/rake:32:in `' 
/Users/me/.rvm/gems/[email protected]/bin/rake:19:in `load' 
/Users/me/.rvm/gems/[email protected]/bin/rake:19:in `' 
Tasks: TOP => jobs:work 

の下に表示されます。

ここで何が起こっているのですか?おかげさまで

答えて

1

Ah!デバッグDJはあなたが知っている痛みです。

このエラーメッセージ:

=> Aonymous modules have no name to be referenced by 

は、あなたが間違ってあなたのモデルのいずれかを綴られていることを意味します。

たとえば、Categorizatoinの代わりにCategorizatoinとします。

あなたのDJのモデルを見て、すべてのモデルのスペルを確認してください。

+0

はい、あなたは正しいですが、私はまだDJテーブルに問題があります。この宝石はDJテーブルを 'Delayed :: Job'という名前で使用しています。私のデータベースでは' delayed_jobs'( 'DelayedJob')という名前です。 'Delayed :: Job'が動作するように私のデータベースのDJテーブル名を変更するには? – a5his

+0

DJが提案するデフォルトのテーブル名を使用できない理由はありますか? – s84

+0

DJ用のデフォルトテーブルはDelayed :: Jobのようですが、scrip/generateとdb:migrationの実行中に自動的に 'DelayedJob'が作成されました。それはDJのバグですか? – a5his

1

2.3のレールバージョンでgemを使ってDJが正しく動作しないのは本当にわかりません。宝石の代わりにプラグインをインストールしてから、documetationのようにしてください。私はこれがあなたにanonymous module問題を与えないことを願っています。

関連する問題