Observer Rails ne fonctionne pas
-
04-10-2019 - |
Question
Je suis en train d'observateurs d'utiliser dans mes rails app pour créer une nouvelle entrée dans mes « événements » Modèle chaque fois qu'un nouveau « Commentaire » est enregistré. Les commentaires épargnent bien, mais l'observateur ne crée pas des événements correctement.
// comment_observer.rb
class CommentObserver < ActiveRecord::Observer
observe :comment
def after_save(comment)
event = comment.user.events.create
event.kind = "comment"
event.data = { "comment_message" => "#{comment.message}" }
event.save!
end
Cet observateur fonctionne très bien je l'utilise dans la console, mais il ne semble pas observer correctement; quand je fais de mon application, il ne semble pas seulement de créer des événements. Je ne vois pas d'erreurs ou quoi que ce soit.
Aussi j'ai config.active_record.observers = :comment_observer
dans mon dossier environment.rb.
Où vais-je tort? Dois-je prendre une approche différente?
La solution
Vous ne devriez pas avoir le observer déclaration puisque votre classe est nommée CommentObserver.
Essayez de laisser sortir.
Ou essayez:
observe Comment
au lieu de
observe :comment
Autres conseils
En effet, vous avez besoin 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