Rails Observer che non funziona
-
04-10-2019 - |
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?
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