LoginSignup
0
0

More than 3 years have passed since last update.

RailsでRakeタスクの作成手順

Posted at

最近の勉強で学んだ事を、ノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
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の tragettrueにする。

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を作る(新カラム作成時など)

0
0
0

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
0
0