以下是这样的情况:用户可以在他的主题被复制和喜欢时收到通知。
交易replies
很简单。创建一个回复后,它将向该主题的作者创建通知。
但是,在处理likes
时,总会有更多人这样做。所以我需要结合喜欢的通知。因此,可以通知用户Mike and 7 other have liked your topic
。
问题是,现在我将notification
建模为多态。
class Notification < ActiveRecord::Base
belongs_to :user
belongs_to :subject, polymorphic: true # could be reply, likes and others
end
因此关系类似于reply
- &gt; notification
- &gt; user
,即1比1对1。
我按@notifcations
显示@notifications.each
,以迭代它们。
但是,一个通知只能代表一个(subject_id
),这对likes
来说太多了,因为有太多人使用此功能。
所以我想结合通知。我该怎么办?
答案 0 :(得分:0)
我会建议你,然后记录上次通知显示的时间(例如,每小时检查一次的cron作业,或者当用户在UI中查看通知时),可能是用户模型上的一列
然后,当您运行通知任务时,按创建日期过滤超过最后一次通知
likes = @topic.likes.where('created_at > ?', @user.last_notified_at)
这会回答你的问题吗?