アクティブレコードコールバック導入


Railsアプリケーションで作成されたすべてのオブジェクトには、Create、Update、およびDestroyの3つの一般的な段階から構成されるライフサイクルがあります.コールバックを使用すると、オブジェクトのライフサイクルの各段階の前に、中または後に指定されたメソッドをトリガすることができます.
以下では、オブジェクトのライフサイクルの基本的ないくつかについて説明します.

クリエイト


Object.create
この1つの方法は、新しいオブジェクトを作成し、データベースに保存するだけであるように見えるかもしれませんが、実際にはこれを達成するためにフードの下で行われる多くのステップがあります.
オブジェクトがつくられる前に、それはその妥当性を通過する必要があります.オブジェクトが有効にされた後に
  • それは作成される大丈夫を与えられます.
  • 作成の後、
  • 、アイテムは最終的にデータベース
  • に保存されます
    これらのステップの前に、の間、そして、そして、の後、我々は行動を実行するためにコールバックメソッドを利用することができます.

    コールバックメソッド


    の前の
  • 以前の確認224779182
  • 余波の検証
  • の前に、の前の

  • の前の
  • は、256 , 79182
    256 , 779172アフターケインクリエイト
  • 256569172アフターセーセイブ上記のコールバックの順番を示すために、それぞれのコールバックの名前をputsという方法で簡単なユーザモデルを定義することができます.
    class User < ApplicationRecord
    
        before_validation :bv
        after_validation :av
        before_save :bs
        before_create :bc
        after_create :ac
        after_save :as
        after_commit :a_com
    
        def bv
            puts "before_validation"
        end
        def av
            puts "after_validation"
        end
        def bs
            puts "before_save"
        end
        def bc
            puts "before_create"
        end
        def ac
            puts "after_create"
        end
        def as
            puts "after_save"
        end
    
    ユーザーモデルのインスタンスを作成すると、コンソール内でメソッドが呼び出され、その項目が作成され、データベースに保存されます.

    更新


    Object.update
    

    更新のコールバックメソッド


    の前の
  • 以前の確認224779182
  • 余波の検証
  • の前に、の前の

  • 現在のアップデート
  • の前の

  • 余震更新
  • 256569172アフターセーセイブアップデートのコールバックメソッドは、作成コールバックと非常によく動作します.
  • 注:after_saveは、CREATEとUPDATEの両方を実行しますが、より特定のコールバックafter_createafter_update
  • 破壊する


    Object.destroy
    

    コールバックメソッド


    の前の
  • は、
  • の上で破壊します
  • 残酷な破壊
  • 結論


    コールバックには多くの用途があり、Ruby on Rails guideで詳しく説明されています.
    私は誰もがさらにそれらを見て、そこに強力な機能を利用するRailsプロジェクトを作成することをお勧め!