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?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top