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?

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top