قضبان المراقب لا يعمل
-
04-10-2019 - |
سؤال
أحاول استخدام المراقبين في تطبيق Rails الخاص بي لإنشاء إدخال جديد في نموذج "الأحداث" في كل مرة يتم فيها حفظ "تعليق" جديد. التعليقات تنقذ بشكل جيد ، لكن المراقب لا ينشئ الأحداث بشكل صحيح.
// 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
يعمل هذا المراقب بشكل رائع ، أستخدمه في وحدة التحكم ولكن لا يبدو أنه يلاحظ بشكل صحيح ؛ عندما أجرب تطبيقي ، لا يبدو أنه يخلق أحداثًا. لا أرى أخطاء أو أي شيء.
و انا ايضا لدي config.active_record.observers = :comment_observer
في ملف البيئة.
هل أنا على خطأ؟ هل يجب أن أتبع نهجًا مختلفًا؟
المحلول
يجب ألا تحتاج إلى رصد بيان منذ أن تم تسمية صفك CommentObserver.
حاول تركها.
او جرب:
observe Comment
بدلاً من
observe :comment
نصائح أخرى
في الواقع ، أنت بحاجة observe :comment
فقط إذا كان لا يمكن استنتاج فئة التعليق من اسم المراقب (أي ، لا يسمى CommentObserver).
هل أعلنت مراقبك في التطبيق. rb:
# Activate observers that should always be running
config.active_record.observers = :comment_observer