[ruby-on-rails] Rails 레이크 작업 실행 방법
터미널 / 콘솔에서이 레이크 파일을 어떻게 실행합니까?
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
답변
다음을 실행하여 셸에서 Rake 작업을 실행할 수 있습니다.
rake task_name
Ruby에서 실행하려면 (예 : Rails 콘솔 또는 다른 Rake 작업에서) :
Rake::Task['task_name'].invoke
단일 작업으로 동일한 네임 스페이스에서 여러 작업을 실행하려면 네임 스페이스에 다음과 같은 새 작업을 만듭니다.
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
?
내 사용자 정의 레이크 작업은 lib / tasks가 아닌 lib 디렉토리에 있습니다. 그게 중요한지 확실하지 않습니다.
답변
가끔 레이크 작업이 콘솔에로드되지 않는 경우가 있습니다.이 경우 다음 명령을 시도해 볼 수 있습니다.
require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
답변
레이크 작업을 실행하는 방법을 잘 모르겠다면 먼저 어떤 작업이 있는지 먼저 확인하면 작업을 실행하는 명령도 나열됩니다.
rake --tasks
터미널에서 실행하십시오 .
다음과 같은 작업이 나열됩니다.
rake gobble:dev:prime
rake gobble:dev:reset_number_of_kits
rake gobble:dev:scrub_prod_data
그런 다음 rake gobble:dev:prime
나열된대로 다음을 사용하여 작업을 실행할 수 있습니다 .
답변
레일 4.2에서는 위의 방법이 작동하지 않았습니다.
- 터미널로 이동합니다.
- 레이크 파일이있는 위치로 디렉토리를 변경합니다.
- rake task_name을 실행하십시오.
- 위의 경우 rake iqmedier를 실행하면 iqmedir 작업 만 실행됩니다.
- rake euroads 실행-euroads 작업 만 실행합니다.
-
해당 파일의 모든 작업을 실행하려면 동일한 파일 내에 다음을 할당하고 rake all을 실행합니다.
task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen end