我找不到任何关于如何在 Rails 中创建通知的结论性文章。每个人似乎都在谈论 Mailboxer 就像它是一个很好的解决方案,但除了他们在 :Notify 方法上的那一段之外,它似乎很模糊。
所以我正在考虑创建一个属于 Activity(公共 Activity Gem)的通知模型,然后在活动模型上使用 after_create 回调来调用 notify 方法,然后调用相关活动对象的 notify 方法。
如图
class Comment
include PublicActivity::Model
tracked
def notify
#Loop through all involved users of this modal instance and create a Notify record pointing to the public activity
end
end
class Activity < PublicActivity::Activity # (I presume I can override the gems Activity model in my App?)
after_create :notify
private
def notify
#Call the notify function from the model referenced in the activity, in this case, comment
end
end
因此,当调用评论模式时,公共活动会跟踪它,然后回调评论通知方法以保存在通知模型中
通知模型将简单地包括
user_id, activity_id, read:boolean
注意:我正在尽最大努力将所有东西都放在控制器之外,因为我认为在模型中可以更好地处理整个事情。但我愿意接受建议
谢谢