例えば、ショッピングサイトでユーザが注文を完了したらその内容をユーザにメールで送信するようなしくみを作るとします。
その実装方法として、
1)受注モデルのコールバックメソッド(after_saveとか)を定義してそこからメールを飛ばす。
2)受注モデルを監視するオブザーバを作ってそこから飛ばす。
普通は1)と2)のどちらで実装するんでしょうか?(手元の書籍AWDWRでは2)を推奨するような記述がありましたが。)
また1)2)のいずれにしても、どの列がどう更新されたかをキレイに判別してメールを出す・出さない等を制御するための定石みたいなものはどのようなやり方でしょうか?
Rails 2.1にすると更新された列名や更新前後の値を取れたりするので、キレイなコードが書けそうですが、現在は2.0.2を使っているので。
コメント(0件)