fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > model のコールバック関数

 ← Ruby のヒアドキュメント(基礎編) | TOP | 掲示板を作ってみる・その12【ruby-gettext で日本語化】

model のコールバック関数 

2008年08月20日 ()
モデルオブジェクトには、あらかじめコールバック関数が定義されています。

[model].create とか、[model].save とか、[model].destroy とかなどをしたときに、勝手に呼ばれるメソッドです。

例えば、

class User < ActiveRecord::Base
  validate_length_of :first_name, :maximum => 40

  def before_validation
    # ここに validate_length_of をする前に行っておきたい処理を書ける
  end
end



と書いておくと、コントローラ辺りで、

u = User.find(123)
u.first_name = 'ケロンパ'
u.save


とした時に、u.save の所で、first_name の validation が行われる前に、before_validation の中身が実行されます。

と言うわけで、挿入、更新、削除の場合、どんなコールバック関数が勝手に呼ばれてしまうのだろう、というのをまとめました。

上から下に順番に呼ばれます。


・挿入の場合 ([model].create とか [model].save とか)

before_validation
before_validation_on_create
# ここで validation が行われる
after_validation
after_validate_on_create

before_save
before_create
# ここで DB に挿入される
after_save
after_create




・更新の場合 ([model].save)

before_validation
before_validation_on_update
# ここで validation が行われる
after_validation
after_validate_on_update

before_save
before_update
# ここで DB が更新される
after_save
after_update




・削除の場合 ([model].destroy)

before_destroy
# ここで DB から削除される
after_destroy




てな訳です。どうしても隠れ機能が多い Rails ですが、腰元の帯をほどくように、あーれー、と1つ1つ丸裸にしてしまいましょう!

【広告】

[2008.08.20(Wed) 00:13] RubyOnRails(Model)Trackback(0) | Comments(4)
↑TOPへ


COMMENT

by xibbar
> 腰元の帯をほどくように、あーれー、と1つ1つ丸裸にしてしまいましょう!
この表現はエロイ!

R-18 by 自分
このブログはR-18なもので過激な表現を使用することがあります、なんちゃって。
生まれたままの姿は実に素敵ですね。

その3で質問したものです by -
説明ありがとうございました
これからもRailsのストリップ劇場期待してます^^;

なるほど by 自分
なるほど腰元風踊り子さんのストリップ劇場は新しいコンセプトかもしれません。
こちら、いつでも次ステージ開催準備が整っていますからまた質問があったら劇場窓口までお越しください。

コメントを閉じる▲
 ← Ruby のヒアドキュメント(基礎編) | TOP | 掲示板を作ってみる・その12【ruby-gettext で日本語化】

COMMENT

> 腰元の帯をほどくように、あーれー、と1つ1つ丸裸にしてしまいましょう!
この表現はエロイ!
[ 2008.08.20(Wed) 09:38] URL | xibbar #- | EDIT |

このブログはR-18なもので過激な表現を使用することがあります、なんちゃって。
生まれたままの姿は実に素敵ですね。
[ 2008.08.20(Wed) 10:35] URL | 自分 #RaJW5m0Q | EDIT |

説明ありがとうございました
これからもRailsのストリップ劇場期待してます^^;
[ 2008.08.20(Wed) 14:38] URL | #9K64Lzaw | EDIT |

なるほど腰元風踊り子さんのストリップ劇場は新しいコンセプトかもしれません。
こちら、いつでも次ステージ開催準備が整っていますからまた質問があったら劇場窓口までお越しください。
[ 2008.08.20(Wed) 16:32] URL | 自分 #RaJW5m0Q | EDIT |

COMMENT POST















管理者にだけ表示

 ← Ruby のヒアドキュメント(基礎編) | TOP | 掲示板を作ってみる・その12【ruby-gettext で日本語化】