Los carriles Observador que no trabaja
-
04-10-2019 - |
Pregunta
Estoy tratando de observadores utilizar en mi aplicación Rails para crear una nueva entrada en mi "Eventos" modelo cada vez que un nuevo "Comentario" se guarda. Los comentarios están ahorrando muy bien, pero el observador no está generando eventos correctamente.
// 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
Este observador funciona muy bien lo uso en la consola, pero no parece estar observando correctamente; cuando intento que mi aplicación no parece crear eventos. No veo errores o nada.
También tengo en mi archivo config.active_record.observers = :comment_observer
environment.rb.
¿Dónde estoy haciendo mal? Debería estar tomando un enfoque diferente?
Solución
No debería ser necesario el observar comunicado ya que su clase se llama CommentObserver.
Trate de salir hacia fuera.
O intente:
observe Comment
en lugar de
observe :comment
Otros consejos
De hecho, es necesario sólo si la clase observe :comment
comentario no puede deducirse a partir del nombre de observador (es decir, no se llama CommentObserver).
¿Le declara su observador en application.rb:
# Activate observers that should always be running
config.active_record.observers = :comment_observer