2010-09-18 5 views
4

J'essaie d'utiliser des observateurs dans mon application rails pour créer une nouvelle entrée dans mon modèle "Events" chaque fois qu'un nouveau "commentaire" est enregistré. Les commentaires sont bien enregistrés, mais l'observateur ne crée pas les événements correctement. Cet observateur fonctionne très bien je l'utilise dans la console mais il ne semble pas observer correctement; Lorsque j'essaie mon application, il ne semble pas que je crée des événements. Je ne vois pas d'erreurs ou quoi que ce soit. J'ai également config.active_record.observers = :comment_observer dans mon fichier environment.rb.Rails Observateur ne fonctionnant pas

Où est-ce que je me trompe? Devrais-je adopter une approche différente?

+0

je viens fini par mettre cette logique dans le comment_controller.rb créer une action. Est-ce que je prends la mauvaise approche? – goddamnyouryan

+0

Avez-vous redémarré le serveur? –

+0

J'ai les mêmes problèmes, sauf que cela arrive avec certains modèles et pas d'autres. Bizarre. – thekingoftruth

Répondre

2

Vous ne devriez pas avoir besoin de l'instruction Observer puisque votre classe s'appelle CommentObserver.

Essayez-le.

Ou essayez:

observe Comment 

au lieu de

observe :comment 
22

, vous avez besoin En effet observe :comment que si la classe de commentaires ne peut pas être déduit du nom d'observateur (à savoir, n'est pas appelé CommentObserver).

Avez-vous déclariez votre observateur application.rb:

# Activate observers that should always be running 
config.active_record.observers = :comment_observer 
+0

N'oubliez pas de redémarrer le serveur – Archonic

+1

Correct, vous devez déclarer l'observateur dans application.rb, ce qui est légèrement gênant. – superluminary

Questions connexes