web-dev-qa-db-ja.com

コンソールからrakeタスクを実行する方法は?

コンソールからrakeタスクを呼び出したい。それは実行可能ですか?はいの場合、その方法は?

私はコンソールでこれを試しました:

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

しかし、それは私にこのエラーを与えます:

RuntimeError: Don't know how to build task

熊手がタスクを見つけられないようです。

任意の助けをいただければ幸いです。

ありがとうございました

編集:Rails 2.3.5を使用しています

73
Fajarmf

Rakeタスクを実行するには、2つの手順が必要です。

  1. ロード中Rake
  2. Rakeタスクの読み込み

2番目のステップがありません。

通常、これはRakefileで行われますが、ここで手動で行う必要があります。

require 'rake'
Rails.application.load_tasks # <-- MISSING LINE
Rake::Task['my_task'].invoke
155
Daniel Rikowski

最も簡単な方法は、irbから%x [command]を実行することです。しかし、あなたが何を達成したいかはわかりません。

%x[rake db:migrate]

編集:.invokeダニエルが受け入れられた答えで述べているように。

14
garno

簡単な方法は次のとおりです。

Rails.application.load_tasks
Rake::Task['my_task'].invoke
5
Mohamed Ziata

Railsコンソールで_Rails c_を使用している場合は、irb(main):001:0> TaskClassName.new.my_taskでrakeタスクメソッドを呼び出すだけで実行できます。

1
aabiro

使っています Rails 5.x.x、および同じフォームを行う必要がありましたRails console
ここにレーキタスクを作成しました-

app/lib/task_to_execute.rake

ここに私のために働いたコマンドがあります-

読み込みRails.application.load_tasks

Rake::Task['task_to_execute:task_name'].invoke

私のために働いた!

1
S.Yadav