最近の勉強で学んだ事を、ノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
Webエンジニアの諸先輩方からアドバイスやご指摘を頂けたらありがたいです!
#1.Rakeタスクファイルを生成
$ rails g task task_sample
作成されたrakeファイル
lib/tasks/task_sample.rake
# 名前空間
namespace :sample do
# タスクの説明 desc => description(説明)
desc ""
# task_name => タスクの名前
task task_name: :environment do
# 実行したい処理を記述する場所
end
end
定義したタスクがきちんと表示するコマンド
rake -T
以下のような名前のタスクが存在すれば定義は成功です。
rake sample:task_name # 実行したい処理を行うタスク
#2.カラムのRecordをUpdateするrake task
特定のIDをもつUserの traget
を true
にする。
lib/tasks/task_sample.rake
namespace :data do
desc "dataを更新"
task update: :environment do
ids = [xx,xx,xx,xx]
User.where(id: ids).each do |u|
u.target = true
u.save!
end
end
end
task update: :environment do
の記述はモデルにアクセスする場合は :environment
を指定する必要があります。
【Rails】Rakeタスクに:environmentがないとNameErrorが出る
rakeタスクを実行するコマンド
rake data:update[environment]
Herokuでrakeタスクを実行するコマンド
heroku run rake data:update[environment]
#参考記事
・RailsでRakeタスクの作成
・Rakeタスクの実装
・railsで複数のRecordをUpdateするrake taskを作る(新カラム作成時など)