2010-05-26 4 views
0

J'ai une hiérarchie de classes comme suit:Quelle est la bonne façon de passer outre Rails événements création/suppression ActiveRecord dans une sous-classe, comme after_create

class A < ActiveRecord::Base 
    after_create { |i| 
    #do something 
    } 
end 

class B < A 
    after_create { |i| 
    #do something else after what A did 
    } 
end 

Je veux avoir le comportement de A effectué en B lorsque after_create est invoquée , mais je ne suis pas sûr de la bonne façon d'écrire la méthode after_create dans B.

Répondre

1

Chaque ca llback que vous définissez sera appelé, dans l'ordre. Vous n'avez rien de spécial à faire pour obtenir le comportement que vous voulez. La syntaxe utilisée est la syntaxe correcte.

+0

Super, merci beaucoup. –

1

Vous pouvez appeler la version superclasse d'une méthode utilisant « super » comme ceci:

class B < A 
    def after_create 
    super 
    #now do something else after what A did 
    end 
end 
+0

C'est vraiment utile. Ceci et la réponse de François fonctionnent tous les deux. Merci d'avoir répondu. –

Questions connexes