塩焼きブログ

塩焼きに関しての研究内容を公開しています

Railsのタスクでバッチ処理を行う

下記でタスクファイルを作成する

rails g task hoge

下記は登録されている画像ファイル名を全て小文字に変更するサンプル。このようにタスクの中ではモデルに自由にアクセスできる。

namespace :hoge do
  desc "処理の説明"
  task :update_record => :environment do
    Image.all.each do |value|
      if value.update_attributes(image_name: value.image_name.downcase)
        puts value.image_name + " => " + value.image_name.downcase
      else
        p value.errors
      end
    end
  end
end

作成したタスクは下記で実行できる

rake hoge:update_record

作成したタスクはrake -vTから一覧で確認することもできる。タスクが増えてきた時は活用したい。

rake -vT