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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA