[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에서는 위의 방법이 작동하지 않았습니다.

  1. 터미널로 이동합니다.
  2. 레이크 파일이있는 위치로 디렉토리를 변경합니다.
  3. rake task_name을 실행하십시오.
  4. 위의 경우 rake iqmedier를 실행하면 iqmedir 작업 만 실행됩니다.
  5. rake euroads 실행-euroads 작업 만 실행합니다.
  6. 해당 파일의 모든 작업을 실행하려면 동일한 파일 내에 다음을 할당하고 rake all을 실행합니다.

    task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
    end
    


답변