2

私が覚えていることから、ドキュメントでは、テスト環境では、rakeを実行しても(引数なしで)データベースが常にクリアされると指定されています。そのようなことを実現したいので、タスクを実行するかどうかは関係ありません。rakeを実行すると、常にRakeタスクが実行されます。これは可能ですか?これは、デフォルトのタスクが開始される場所ですか?

4

1 に答える 1

2

rakefileタスクを実行したいディレクトリにというファイルを作成します。このコードは、「rake」と入力するだけで my_default_task が実行されるようにします。

  task :default => 'my_default_task'

  task :my_default_task do
     puts "Now I am doing the task that Tempus wants done when he/she types 'rake' in the console."
  end

  task :my_not_default_task do
    puts "This isn't the default task."
  end

ただし、入力rake my_not_default_taskした場合my_default_taskは実行されません。ここに関係なく実行したい場合は、次のことができます。

task :default => 'my_default_task'

task :my_default_task do
    puts "This is the default task"
end

task :my_not_default_task do
  puts "This isn't the default task."
end

Rake::Task['my_default_task'].invoke

rake my_not_default_taskこのコードの最後の行により、他のタスクを呼び出した場合でも my_default_task が実行されることが保証されますmy_default_task

lib/tasks編集: Rails を使用している場合は、上記のタスクをフォルダー内のファイルに拡張子.rake.rake

Jason Seifer は rake に関する本当に素晴らしいチュートリアルを持っています。

于 2012-05-23T13:17:34.617 に答える