Rails:如何结合喜欢通知?

时间:2015-02-09 13:01:50

标签: ruby-on-rails

以下是这样的情况:用户可以在他的主题被复制和喜欢时收到通知。

交易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来说太多了,因为有太多人使用此功能。

所以我想结合通知。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我会建议你,然后记录上次通知显示的时间(例如,每小时检查一次的cron作业,或者当用户在UI中查看通知时),可能是用户模型上的一列

然后,当您运行通知任务时,按创建日期过滤超过最后一次通知

likes = @topic.likes.where('created_at > ?', @user.last_notified_at)

这会回答你的问题吗?