Railsのコールバックメソッドとは一体何ですか?コントローラーとモデルについて学ぶ間、この用語がどこでも使用されているのを目にします。誰かが例を教えてもらえますか?
質問する
268 次
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個のメソッドがあるとします。したがって、それを実現するには、冗長なすべての場所でコードを繰り返す必要があります。
これを回避するには、ここCallbacks
でbefore_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 に答える