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

ここにタイトルが入ります

デザイン&プログラミングのことも書くし、それ以外のことも書く。

【Rails】ActiveRecordでコールバックを呼ばないupdate方法。

Rails

ActiveRecordにはコールバックという便利な機能がありますよね。
モデル経由で更新等行う前や後などに、指定した処理を実行してもらえる。

この前after_update(update後に行う処理を追加できる)の処理の中に更新する処理(update_attibute)を書いたら、永遠にafter_updateの処理が呼ばれる…という無限ループになってしまいました。
当たり前か。。


コールバックメソッド内では更新処理とか書けないのかな…と思っていたら、コールバックを呼ばない更新メソッドがちゃんと用意されているようです!
そりゃそうか。。


〜大変参考になりました!!〜
よかろうもん!


私はRails3.2で開発していましたので、update_columnを使うことで事無きを得ました。


詳しくは下記リンク参照。
ActiveRecord::Persistence
updateメソッドによって、コールバックだけじゃなくバリデーションが適応されるかどうかとかもいろいろ違うみたい。