如何处理订阅源中的聚合活动,然后处理注释

时间:2013-05-02 13:25:47

标签: ruby-on-rails design-patterns feeds

我正在为我正在使用的跑步俱乐部开发一个活动流。在过去的几周里,跑步者将能够看到他们和他们的朋友所做的所有有趣和美好的事情。

Obie Fernandez在RailsConf 2012(the videos on YouTube here)上就如何使用Redis进行了很好的讨论,并且我已经在我们的应用程序中对其进行了调整。

运行它几天后,很明显我的下一个挑战是现在将聚合项目构建到此列表中。以下面的Feed为例:

The feed as it's implemented

在这里,很明显顶级故事会更好地融入“ Shaun,Alexander和Ivo 完成群组运行......”这样的事情,但这在思考评论时提出了一个有趣的问题。目前,评论与正在进行的个人行动相关联。所以关于Ivo参加奔跑的评论是针对他的。在崩溃的故事中,我不完全确定如何处理评论。这可能是评论然后分配给所有与你一起参与的朋友的人,但是当有不同朋友的人时,我很快就会看到它变得混乱。评论可以直接链接到运行本身,但是它们失去了能够引用特定用户出席的价值。

我很想听听别人对此的看法,以及有关处理此问题的良好设计模式的任何指示。

1 个答案:

答案 0 :(得分:1)

我想在多态关系中有feed_item(用于显示目的)having_many feedables。也就是说,许多可以创建feed_item的东西(跑步,骑自行车,连接到新朋友都是feedable并生成feed_item

上面的运行将是3次运行,全部与一个feed_item相关联,feed_item将有许多comments,而不是feedable(运行或其他)。< / p>

这将我们小组的MY记录从我们小组运行的记录中隔离出来,所以当你离开服务时,我的运行仍然存在,因为feed_item仍在那里,它只是丢失了你的feedable运行

对它们进行批处理和关联将需要一些模糊的逻辑,这是一个不同的问题,但希望这可以帮助你进行评论,并且使用feed_item作为feedable的独立来源(运行{{1}} ,自行车等)