2010-10-11 11 views

risposta

9

Quando viene eseguito un callback after_update, ogni oggetto ActiveModel ha un metodo chiamato changed_attributes. Puoi verificarlo nel tuo ambiente di debug. Ogni oggetto ActiveRecord ha questo metodo. Ha un hash di tutti i valori che sono stati modificati/modificati. Questo è anche noto come oggetto sporco.

Date un'occhiata ad alcune di queste esercitazioni

Railscasts

Dirty Object

+1

Grazie! Non importa quanto Rails devo fare, c'è sempre qualcosa di nuovo da imparare. – nfm

1

Ci deve essere qualcosa come seguire nel vostro osservatore.

class ActivityObserver < ActiveRecord::Observer 

    def after_update(activity) 
    if activity.attribute_name_changed? 
     puts "The above condition will return true or false, and this time it has returned true..!!!" 
    end 
    end 

end 

Il metodo sopra farà. Penso che stavi cercando questo ..