37
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RailsでRakeタスクをcontrollerから呼び出す時の覚書

Last updated at Posted at 2017-10-18

RailsでRakeタスクをcontrollerから呼び出す時の覚書

メドッドに以下を追加
require 'rake'
Rails.application.load_tasks
Rake::Task['タスク名'].execute

# clearをしないと次のリクエスト時にload_tasksでタスクが再度読み込まれ、execute内で2回実行されてしまう。
# さらにリクエストがあると3、4とどんどん増えるていく罠
Rake::Task['タスク名'].clear

clearしておかないと多重実行されるという罠にハマるので覚書で記述します。
意外と忘れて久しぶりに罠にまた引っかかるという・・・

なんでtaskをcontrollerから実行されているのというと
task作ったが非エンジニアから画面から実行したいとか、わざわざエンジニアがコンソール叩くのめんどくさくなったので

注)
この方法は、その場しのぎですので
本来はクラスに切り出して、taskでもcontrollerからでも両方から呼べるようにするべきです。

37
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?