开发者

Rails Observer Not Working

开发者 https://www.devze.com 2023-01-17 04:30 出处:网络
I am trying to use observers in my rails app to create a new entry in my \"Events\" Model every time a new \"Comment\" is saved. The comments are saving fine, but the observer is not creating events p

I am trying to use observers in my rails app to create a new entry in my "Events" Model every time a new "Comment" is saved. The comments are saving fine, but the observer is not creating events properly.

// comment_observer.rb
class CommentObserver < ActiveRecord::Observer
  observe :comment

  d开发者_如何学编程ef after_save(comment)
    event = comment.user.events.create
    event.kind = "comment"
    event.data = { "comment_message" => "#{comment.message}" }
    event.save!
  end

This observer works great I use it in the console but it doesn't seem to be observing properly; when I try my app it just doesn't seem to create events. I don't see errors or anything.

Also I have config.active_record.observers = :comment_observer in my environment.rb file.

Where am I going wrong? Should I be taking a different approach?


Indeed, you need observe :comment only if comment class can’t be inferred from the observer name (i.e., is not called CommentObserver).

Did you declare your observer in application.rb:

# Activate observers that should always be running
config.active_record.observers = :comment_observer


You shouldn't need the the observe statement since your class is named CommentObserver.

Try leaving it out.

Or try:

observe Comment

instead of

observe :comment
0

精彩评论

暂无评论...
验证码 换一张
取 消