245

カスタム レーキ タスクを作成しようとしていますが、自分のモデルにアクセスできないようです。これは Rails タスクに暗黙的に含まれているものだと思いました。

lib/tasks/test.rake に次のコードがあります。

namespace :test do
  task :new_task do
    puts Parent.all.inspect
  end
end

そして、ここに私の親モデルがどのように見えるかがあります:

class Parent < ActiveRecord::Base
  has_many :children
end

これは非常に単純な例ですが、次のエラーが発生します。

/> rake test:new_task
(in /Users/arash/Documents/dev/soft_deletes)
rake aborted!
uninitialized constant Parent

(See full trace by running task with --trace)

何か案は?ありがとう

4

6 に答える 6

429

それを理解すると、タスクは次のようになります。

namespace :test do
  task :new_task => :environment do
    puts Parent.all.inspect
  end
end

=> :environmentタスクに追加された依存関係に注意してください

于 2009-05-18T05:47:09.907 に答える
17

構成を要求する必要がある場合があります (必要なすべてのモデルなどを指定する必要があります)。

例えば:

require 'config/environment'

または、それぞれを個別に要求することもできますが、AR が設定されていないなどの環境問題が発生する可能性があります)

于 2009-05-18T05:45:19.767 に答える