I believe you can do this already with 
ActiveModel::Dirty<http://api.rubyonrails.org/classes/ActiveModel/Dirty.html>
:

def send_mail_to_customer
  UserMailer.send_mail_to_customer if status_change == [0, 1]
end

On Monday, December 17, 2012 9:14:33 AM UTC-5, angelo capilleri wrote:
>
> Hi,
> I'm thinking about a method that responds true or false for the changes of 
> attributes from a value to another to trace a little bit the status of an 
> AR object.
>
> Ex.
> class Book < ActiveRecord::Base
>   STATUS_DELIVER = [0,1]
>   before_save :send_mail_to_customer
>
>   def send_mail_to_customer
>     UserMailer.send_mail_to_customer if self.changes['status'] == [0, 1]
>   end
> end
>
> It' a simple case but when complexity grows up a method like
>
>  def send_mail_to_customer
>    UserMailer.send_mail_to_customer if self.status.changes(from: 0, to: 1)
>  end
>
>  Maybe is more mantenible and readable.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-core/-/xAAFpU6U2EoJ.
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-core?hl=en.

Reply via email to