2008年11月7日金曜日

p69,p70 あれ? validateは誰がいつ呼ぶ?

priceをチェックするvalidateですが、一体いつ誰がどのタイミングで呼ぶのでしょうか。

あ、P69に書いてあった。申し訳ない!
RailsがProductのインスタンスを保存する前に自動的に呼び出す、とある。インスタンス? あ、インスタンスって、そういえばこいつらのインスタンスって誰が「持ってる」の? 何気にMigrationとかもそうだよね。全然気にしてませんでした。うっかり。

まあ、Railsがどっかでやっとっくよ!なんでしょうが、Productみたいにいつ動くのか分からないと、作ったうちに入らないよね当然。

Productは多分商品1個でインスタンス1個でしょ。バカみたいな答えで申し訳ない。ということは、レコードを追加したときNewだよね? そっか、で多分ActiveRecord絡みの何かがそれをテーブル単位かなんかでさらに管理(保持)すると。想像ですけど。

だとして、レコードの追加や更新があった時に?DBを更新する動きになるわけで、そんときか。そのときにvalidateを呼ぶんだねきっと。ということは、きっとこれも規約に則ってないとダメってことだよね。つまり、validateっていう名前で、多分パラメータなしっていうこと。じゃないと呼べない? どうだろ。この人たちrubyコードを構文解析して値を取るっていうのを、確かRailsのバージョン取得でやってたからね。油断は禁物。とりあえずこれ以上は想像しててもしょうがないのでペンディングにして、今後の経過を見守ろう。

Migrationに関してはねえ、インスタンスは1個なんじゃない? でコマンド実行時にやると。で問題ない気がするけど。

0 件のコメント: