Я не могу найти убедительных статей, показывающих, как создавать уведомления в рельсах. Кажется, все говорят о Mailboxer, как о хорошем решении, но, если не считать одного абзаца о методе :Notify, он кажется очень расплывчатым.
Итак, я думаю о создании модели уведомлений, которая принадлежит Activity (Public Activity Gem), а затем использовать обратный вызов after_create в модели действий для вызова метода уведомления, который затем вызывает метод уведомления рассматриваемого объекта действий.
Как диаграмма
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
Примечание. Я изо всех сил стараюсь держать все подальше от контроллера, так как думаю, что все это будет лучше обрабатываться в модели. Но я открыт для предложений
Спасибо