1

collectiveidea のdelayed_job gem を使用しようとしています インストール手順には以下が含まれます

Rake tasks are not automatically loaded from gems, so you’ll need to add
the following to your Rakefile:

begin
  require 'delayed/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install delayed_job"
end

Rakefile はどこにありますか? Rakefile とは何ですか?

4

3 に答える 3

3

Rails 3.1とcollectiveidea-delayed_jobでも同じ問題がありました。

イニシャライザを追加Delayed::Worker.backend = :active_recordすると、エラーが発生しました
no such file to load -- delayed/backend/active_record (LoadError)

私にとっての解決策は、ここでgem 'delayed_job_active_record'提案されているように、gemfile を追加することでした。

于 2011-12-27T07:44:25.173 に答える
2

私は同じ問題を抱えており、そのコードを lib/tasks ディレクトリのdelayed_job.rakeに入れました。それは機能しますが、今では次のように言います:

*** Starting job worker localhost pid:79949 
rake aborted! 
uninitialized constant Delayed::Job

今何が悪いのですか?

更新: Brandon からメールで回答がありました:

最新バージョンでは、rake タスクの使用時に適切に初期化されないというバグがあります。config/initializers にファイルを作成し、その中に以下を入れると、エラーは消えるはずです:

Delayed::Worker.backend = :active_record
于 2010-04-14T10:36:43.083 に答える
1

Rakefileは、Rubyビルドツールであるrakeを構成するために使用されるファイルです(makeに似ていますが、すべてRubyにあります)。Railsプロジェクトでは、このコードを挿入できるRakefileという名前のファイルがプロジェクトの最上位ディレクトリにあります。

または、ファイルをlib / tasksディレクトリ(たとえば、delayed_job.rakeという名前)に追加して、そこにコードを配置することもできます。ファイルの名前は、次の場合に限り重要ではありません。

  1. lib/tasksディレクトリにあります
  2. 拡張子は.rakeです。
于 2010-04-07T01:37:46.187 に答える