このレーキファイルをターミナル/コンソールで実行するにはどうすればよいですか?
lib/tasksのstatistik.rake
desc "Importer statistikker"
namespace :reklamer do
task :iqmedier => :environment do
...
end
task :euroads => :environment do
...
end
task :mikkelsen => :environment do
...
end
task :orville => :environment do
...
end
end
RailsコンソールでRakeタスクを実行するのではなく、代わりにターミナル/コマンドプロンプトで実行する必要があります
rake task_name
本当にmust RubyでRakeタスクを実行すると、次のことができるはずです。
Rake::Task['task_name'].invoke
しかし、それは通常、Rakeタスク自体で別のタスクを実行するためにのみ行われます。
単一のタスクで同じネームスペースで複数のタスクを実行するには、ネームスペースに次の新しいタスクを作成します。
task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
# This will run after all those tasks have run
end
Rake::Task['reklamer:orville'].invoke
または
Rake::Task['reklamer:orville'].invoke(args)
rake reklamer:iqmedier
を試しましたか?
私のカスタムrakeタスクは、lib/tasksではなく、libディレクトリにあります。それが重要かどうかわかりません。
時々、rakeタスクがコンソールにロードされません。その場合、次のコマンドを試すことができます
require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
Rails 4.2では、上記の方法は機能しませんでした。
そのファイル内のすべてのタスクを実行するには、同じファイル内で次を割り当て、rake allを実行します
task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen
end
Rakeタスクの実行方法がわからない場合は、まず自分のタスクを確認してください。タスクを実行するコマンドもリストされます。
ターミナルでrake --tasks
を実行します。
次のようなタスクがリストされます。
rake gobble:dev:prime
rake gobble:dev:reset_number_of_kits
rake gobble:dev:scrub_prod_data
次に、リストのrake gobble:dev:prime
を使用してタスクを実行できます。
ここに、私が役に立つと思うrakeタスクの実行に関する非常に良いチュートリアルがあります。