ActiveRecordの便利機能previous_changes|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。CONTACTTOP開発ActiveRecordの便利機能previous_changes開発2013.08.26ActiveRecordの便利機能previous_changesbabaシェアツイートブックマークLINEActiveRecordには便利なprevious_changesというメソッドがあります。知名度が低いので、ここで使い方をご紹介します。(08/26追記)はてブでご指摘(?)頂きましたが、正確にはActiveRecordではなくActiveModel::Dirtyの機能です。changesprevious_changesの前に基本のchangesです。これは、saveする前に変更されたattributeを調べる機能です。findした直後です。changed?は当然falseになります。{}attributeを書き換えてみましょう。changesが取得できるようになりました。falsesaveすると、changed?はまたfalseに戻ります。falseここでprevious_changesここで、さっきのchangesが欲しい!ということはよくありますよね。典型的な例としては、after_save以降のタイミングで変更履歴を残したいなどがあげられます。こんなときに、previous_changesが使えます。+00:00]}シンプルで便利ですね。これはDBの履歴を持っているスーパーでワンダホーな機能ではなく、単にインスタンス変数として保存しているだけです。findした直後のインスタンスで取得したり、繰り返し呼んで古いデータを復元することはできません。シェアツイートブックマークLINEこの記事を書いた人babaゆとりプログラマー。BPS設立初期に在学中から参加している最古参メンバーの一人。Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。Gold、AWSソリューションアーキテクト(アソシエイト)、日商簿記2級、漢検準1級などを保有。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。