Railsアプリケーションでお世話になるRakeタスク、自分でも書ける。
タスクの実行
rails [task]
昔はbundle exec rake [task]
とかやってた気がする。
Rails 5からrails
コマンドでタスクを実行できるようになった。
実行できるタスクの確認
rails --tasks
rails
コマンドを含めたタスクコマンドを一覧で確認できる。
タスクを作る
新規に作る
rails generate task [task_name]
lib/tasks/[task_name].rake
が作成される。
タスクを書く
desc "タスクの詳細" task :task_sample do puts "タスクサンプル" end
descを書いておくと、rails --tasks
コマンドでコマンドと一緒に表示される。
namespace
namespace :sample1 do desc "タスク1" task :task_sample do puts "sample1" end end namespace :sample2 do desc "タスク2" task :task_sample do puts "sample2" end end
namespaceを指定するとタスク名のグループ化が可能
$rails --tasks ... rails sample1:task_sample # タスク1 rails sample2:task_sample # タスク2 ...