проблема с отложенной задачей задачи с рельсами 2.3.5 [закрыта]

Я использую отложенное задание rubygem, но не могу успешно запустить задачу rake. Я взял ссылку на https://github.com/collectiveidea/delayed_job/tree/v2. 0. Кстати, я использую упаковщик.

#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

При запуске rake jobs:work --trace отображается следующая ошибка

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/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 `'
Tasks: TOP => jobs:work

Я попробовал сбой задачи с отложенным заданием Rake, но это не решило мою проблему.

Кто-нибудь может описать, что здесь происходит? Спасибо.


person ashisrai_    schedule 13.07.2011    source источник


Ответы (2)


Ах! Отладка диджея — это головная боль, сами знаете что.

Это сообщение об ошибке:

=> Aonymous modules have no name to be referenced by

Означает, что вы неправильно написали одну из своих моделей.

Например: Categorizatoin вместо Categorizatoin.

Так что просмотрите свои модели в DJ и проверьте правописание на всех своих моделях.

person thenengah    schedule 13.07.2011
comment
Да, вы правы, но у меня все еще есть проблема с диджейским столом. Гем использовал таблицу DJ с именем Delayed::Job, тогда как в моей базе данных она называется delayed_jobs(DelayedJob). Как изменить имя стола DJ в моей базе данных, чтобы Delayed::Job работало? - person ashisrai_; 13.07.2011
comment
Есть ли причина, по которой вы не можете использовать имя стола по умолчанию, предложенное DJ? - person thenengah; 13.07.2011
comment
Таблица по умолчанию для DJ выглядит как Delayed::Job, где при запуске scrip/generate и db:migration автоматически создается DelayedJob. Это ошибка диджея? - person ashisrai_; 13.07.2011

Я действительно не понимаю, почему DJ не будет работать должным образом с использованием драгоценного камня в версии 2.3 для рельсов. Убедитесь, что вы установили плагин вместо драгоценного камня, а затем сделайте, как сказано в документации. Надеюсь, это не доставит вам anonymous module проблемы.

person alternative    schedule 18.07.2011