Meaning:-
Active Record Observers means a callback or a trigger which will get called in the life cycle of active record object. This is used for the purpose of reducing the burden on model's functionality which is not directly belongs to model. e.g. a task like after registration send an email to user.
Creation:-
The Observers can be created by following command
script/generate observer node
The above command will generate an observer with name
NodeObserver in
node_observer.rb file and this will by default observers a Node model.
Configuration:-
Then need to configuration in a config/environment.rb as
config.active_record.observers = :node_observer
There are 16 types of callback available in active record as follows:-
CALLBACKS = [ :after_initialize, :after_find, :after_touch, :before_validation, after_validation,:before_save,
:around_save, :after_save, :before_create, :around_create, :after_create, :before_update, :around_update, :after_update,:before_destroy, :around_destroy, :after_destroy, :after_commit, :after_rollback ]
But all these callbacks works on a row object but suppose we wanted to observe a particular column has changed or not then we can use an Active Record's change? method .
e.g. suppose for security purpose we want to send an email to a user when he changes his password
def after_update(user)
if user.password_changed?
//email send code//
end
end
0 Comment(s)