콘솔에서 레이크 작업을 호출하고 싶습니다. 할 수 있습니까? 그렇다면 어떻게해야합니까?
나는 이것을 콘솔에서 시도했다.
require 'rake'
Rake::Task['my_task'].invoke
하지만이 오류가 발생합니다.
RuntimeError: Don't know how to build task
갈퀴가 작업을 찾지 못하는 것과 같습니다.
어떤 도움을 주시면 감사하겠습니다.
감사합니다
편집 : 레일 2.3.5를 사용하고 있습니다.
답변
Rake 작업을 실행하려면 두 단계가 필요합니다.
- 레이크 로드
- 레이크 작업 로드
두 번째 단계를 놓치고 있습니다.
일반적으로 이것은 Rakefile에서 수행되지만 여기서 수동으로 수행해야합니다.
require 'rake'
Rails.application.load_tasks # <-- MISSING LINE
Rake::Task['my_task'].invoke
답변
가장 쉬운 방법 은 irb에서 % x [ command ] 를 실행하는 것입니다 . 그래도 무엇을 성취하고 싶은지 잘 모르겠습니다.
%x[rake db:migrate]
편집 :.invoke
Daniel이 허용 된 답변에서 말한 것처럼 사용하는 것이 좋습니다 .
답변
쉬운 방법은 다음과 같습니다.
Rails.application.load_tasks
Rake::Task['my_task'].invoke
답변
나는 사용 rails 5.x.x
하고 있고, 같은 형태를 할 필요가 있었다 rails console
.
여기에 레이크 작업을 만들었습니다.
app/lib/task_to_execute.rake
다음은 나를 위해 일한 명령입니다.
하중 Rails.application.load_tasks
Rake::Task['task_to_execute:task_name'].invoke
나를 위해 일했습니다!
답변
레일스 콘솔에있는 경우 다음을 통해 rails c
레이크 태스크 메서드를 호출 / 실행할 수 있습니다.irb(main):001:0> TaskClassName.new.my_task