define_model_callbacks(*callbacks)
Instance Public methods
#define_model_callbacks
accepts the same options define_callbacks
does, in case you
want to overwrite a default. Besides that, it also accepts an
:only
option, where you can choose if you want all types
(before, around or after) or just some.
1 | define_model_callbacks :initializer , only: :after |
Note, the only: <type>
hash will apply to all callbacks
defined on that method call. To get around this you can call the #define_model_callbacks
method as many times as you need.
1 2 3 | define_model_callbacks :create , only: :after define_model_callbacks :update , only: :before define_model_callbacks :destroy , only: :around |
Would create after_create
, before_update
and
around_destroy
methods only.
You can pass in a class to before_<type>, after_<type> and around_<type>, in which case the callback will call that class's <action>_<type> method passing the object that the callback is being called on.
1 2 3 4 5 6 7 8 9 10 11 12 | class MyModel extend ActiveModel::Callbacks define_model_callbacks :create before_create AnotherClass end class AnotherClass def self .before_create( obj ) # obj is the MyModel instance that the callback is being called on end end |
Please login to continue.