0

Railsのコールバックメソッドとは一体何ですか?コントローラーとモデルについて学ぶ間、この用語がどこでも使用されているのを目にします。誰かが例を教えてもらえますか?

4

1 に答える 1

3

ActiverecordActiveRecord::Callbacksへのコールバックの参照

Callbacks are hooks into the lifecycle of an Active Record object that allow you 
to trigger logic before or after an alteration of the object state. This can be 
used to make sure that associated and dependent objects are deleted when destroy 
is called (by overwriting before_destroy) or to massage attributes before they‘re
validated (by overwriting before_validation). As an example of the callbacks
initiated, consider the Base#save call for a new record

モデルがあり、サブスクリプションが作成された日付を含むSubscription列があるとします。signed_up_onこのために、w/o Callbacksあなたはあなたので次のようなことをすることができますcontroller

@subscription.save
@subscription.update_attribute('signed_up_on', Date.today)

これは完全に問題ありませんが、サブスクリプションが作成されるアプリケーションに3〜4個のメソッドがあるとします。したがって、それを実現するには、冗長なすべての場所でコードを繰り返す必要があります。

これを回避するには、ここCallbacksbefore_createコールバックを使用できます。したがって、サブスクリプションのオブジェクトがget createである場合は常に、今日の日付がに割り当てられます。signed_up_on

class Subscription < ActiveRecord::Base
    before_create :record_signup

    private
      def record_signup
        self.signed_up_on = Date.today
      end
end

以下は、すべてのコールバックのリストです

after_create
after_destroy
after_save
after_update
after_validation
after_validation_on_create
after_validation_on_update
before_create
before_destroy
before_save
before_update
before_validation
before_validation_on_create
before_validation_on_update
于 2012-10-24T15:08:23.580 に答える