コンソールからrakeタスクを呼び出したい。それは実行可能ですか?はいの場合、その方法は?
私はコンソールでこれを試しました:
require 'rake'
Rake::Task['my_task'].invoke
しかし、それは私にこのエラーを与えます:
RuntimeError: Don't know how to build task
熊手がタスクを見つけられないようです。
任意の助けをいただければ幸いです。
ありがとうございました
編集:Rails 2.3.5を使用しています
Rakeタスクを実行するには、2つの手順が必要です。
2番目のステップがありません。
通常、これはRakefileで行われますが、ここで手動で行う必要があります。
require 'rake'
Rails.application.load_tasks # <-- MISSING LINE
Rake::Task['my_task'].invoke
最も簡単な方法は、irbから%x [command]を実行することです。しかし、あなたが何を達成したいかはわかりません。
%x[rake db:migrate]
編集:.invoke
ダニエルが受け入れられた答えで述べているように。
簡単な方法は次のとおりです。
Rails.application.load_tasks
Rake::Task['my_task'].invoke
Railsコンソールで_Rails c
_を使用している場合は、irb(main):001:0> TaskClassName.new.my_task
でrakeタスクメソッドを呼び出すだけで実行できます。
使っています Rails 5.x.x
、および同じフォームを行う必要がありましたRails console
。
ここにレーキタスクを作成しました-
app/lib/task_to_execute.rake
ここに私のために働いたコマンドがあります-
読み込みRails.application.load_tasks
Rake::Task['task_to_execute:task_name'].invoke
私のために働いた!