ActiveRecord Rappels Liste
J'ai été en passant par les rails de la source pour un certain temps maintenant, et je ne pense pas qu'il ya une meilleure façon d'obtenir la liste des tous rappels d'autre que: ActiveRecord::Callbacks::CALLBACKS
– qui est une liste de constantes.
De sens que si vous utilisez un bijou comme devise_invitable qui ajoute une nouvelle callback appelé :invitation_accepted
avec le score :after
et :before
puis ActiveRecord::Callbacks::CALLBACKS
ne fonctionnera pas.
Connaissez-vous une solution facile, autre que l'ouverture des rails de modules et assurez-vous il y a une liste interne de rappels par modèle de classe?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez appeler
Model._save_callbacks
pour obtenir une liste de tous les rappels sur enregistrer.Vous pouvez ensuite filtrer vers le bas pour quel type vous avez besoin par exemple
:before
ou:after
comme ceci:Fonctionne de la même pour
Model._destroy_callbacks
etc.La docs dire "Il y a dix-neuf rappels au total,"... mais ils ne semblent pas à dire ce que l'ensemble de ces 19 vraiment!
Pour ceux qui Googlé "liste de tous les ActiveRecord rappels" comme je l'ai fait, voici la liste (à l'aide d'
ActiveRecord::Callbacks::CALLBACKS
comme décrit dans la question):Notez que si vous voulez simplement déclencher des rappels, vous pouvez utiliser le
#run_callbacks(kind)
méthode:Si vous travaillez dans un des Rails de version antérieure à la
._save_callbacks
méthode, vous pouvez utiliser les éléments suivants:Que je vais proposer plus de solution universelle.
Il fonctionne même lorsque les pierres sont en déclarant personnalisé rappels par exemple la paranoïa et
after_real_destroy
À la liste de tous les rappels
Ensuite, vous pouvez obtenir compte tenu des rappels si vous tapez le nom de la méthode par exemple
Si vous avez la liste de tous les rappels, vous pouvez trouver de rappel vous avez besoin en cochant
@filter
variable d'instance par exemple