[console] 콘솔에서 레이크 작업을 실행하는 방법은 무엇입니까?

콘솔에서 레이크 작업을 호출하고 싶습니다. 할 수 있습니까? 그렇다면 어떻게해야합니까?

나는 이것을 콘솔에서 시도했다.

require 'rake'
Rake::Task['my_task'].invoke

하지만이 오류가 발생합니다.

RuntimeError: Don't know how to build task

갈퀴가 작업을 찾지 못하는 것과 같습니다.

어떤 도움을 주시면 감사하겠습니다.

감사합니다

편집 : 레일 2.3.5를 사용하고 있습니다.



답변

Rake 작업을 실행하려면 두 단계가 필요합니다.

  1. 레이크 로드
  2. 레이크 작업 로드

두 번째 단계를 놓치고 있습니다.

일반적으로 이것은 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


답변