Domanda

Sto cercando di utilizzare gli osservatori nei miei rotaie app per creare una nuova voce nel mio "Eventi" del modello ogni volta che un nuovo "Commento" viene salvato. I commenti sono il risparmio bene, ma l'osservatore non stia creando eventi correttamente.

// 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

Questa osservatore funziona uso ottima, ho nella console, ma non sembra essere osservando correttamente; quando provo la mia app semplicemente non sembra creare eventi. Non vedo errori o nulla.

Anche io ho config.active_record.observers = :comment_observer nel mio file environment.rb.

Dove sto andando male? Dovrei essere prendendo un approccio diverso?

È stato utile?

Soluzione

Non dovrebbe essere necessario il osservare economico in quanto la classe si chiama CommentObserver.

Prova lasciando fuori.

O provare:

observe Comment

anziché

observe :comment

Altri suggerimenti

In effetti, è necessario solo se observe :comment commento della classe non si può dedurre dal nome dell'osservatore (vale a dire, non si chiama CommentObserver).

Lo si dichiara il vostro osservatore application.rb:

# Activate observers that should always be running
config.active_record.observers = :comment_observer
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top