I'd really like to know the answer to that too! On Mar 21, 11:52 am, tekwiz <[email protected]> wrote: > Thanks elioncho! I understand that it is a best practice to separate > certain functionality out of models into observers. > > I guess I should clarify my question... Is there any _technical_ > reason to use observers instead of callbacks or visa versa. > > -- TW > > On Mar 20, 8:15 pm, elioncho <[email protected]> wrote: > > > Hi tekwiz, > > > This is excerpt is from Agile Web Development with Rails: > > > Callbacks are a fine technique, but they can sometimes result in a > > model class > > taking on responsibilities that aren’t really related to the nature of > > the model. > > For example, on page 385 we created a callback that generated a log > > message > > when an order was created. That functionality isn’t really part of the > > basic > > Order class—we put it there because that’s where the callback > > executed. > > Active Record observers overcome that limitation. An observer > > transparently > > links itself into a model class, registering itself for callbacks as > > if it were part > > of the model but without requiring any changes in the model itself. > > > On Mar 20, 4:11 pm, tekwiz <[email protected]> wrote: > > > > Why use an Observer for a single model rather than using a callback in > > > the ActiveRecord object? They seem like they work identically. Is > > > there a difference I'm missing? > > > > For example, these seem like they would do the same thing: > > > > class User < ActiveRecord::Base > > > after_create :send_welcome > > > > protected > > > def send_welcome > > > UserMailer.send_welcome(self) > > > end > > > end > > > > class UserObserver < ActiveRecord::Observer > > > def after_create(user) > > > UserMailer.send_welcome(user) > > > end > > > end > > > > -- TW --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

