読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

Rails4でモデルのコールバックの一覧と順番

Rails初級 Rails Model

RailsのActiveRecordでは、モデルのバリデーション、生成、更新、削除などの処理の前後に処理を挟み込むことができる「コールバック」という仕組みがあります。

そのコールバックの基礎的な使い方、コールバックの一覧と呼ばれる順序について説明します。


動作確認

  • Rails 4.1
  • ActiveRecord 4.1

目次

  1. コールバックの概要
  2. ActiveRecordで利用可能なコールバック一覧


コールバックの概要

before_save, after_saveなどのようにsavevadliatiaonの前後に処理を記述することができます。

class User < ActiveRecord::Base
  # レコードを作成する前に create_remember_tokenメソッド が呼ばれる
  before_create :create_remember_token

  private
    def create_remember_token
      self.remember_token = User.encrypt(User.new_remember_token)
    end
end


ActiveRecordで利用可能なコールバック一覧

ActiveRecordで利用できるコールバック一覧です。呼び出される順番で並んでいます。

オブジェクトの作成(create)
  1. before_validation
  2. after_validation
  3. before_save
  4. around_save
  5. before_create
  6. around_create
  7. after_create
  8. after_save
オブジェクトの更新(update)
  1. before_validation
  2. after_validation
  3. before_save
  4. around_save
  5. before_update
  6. around_update
  7. after_update
  8. after_save
オブジェクトの削除(destroy)
  1. before_destroy
  2. around_destroy
  3. after_destroy
  4. after_save
インスタンス化
  1. after_initialize
DBからレコードをロード
  1. after_find
touchオプションによりtouchされた
  1. after_touch


以上です。