好的,这里是我在StackOverflow上问过的最棘手的问题。Rails - News Feed
我的Web应用程序允许创建文档。这个文件自动保存让我们说几秒钟。
同时,我想要一个新闻提要,让用户知道朋友在做什么。所以我创建了一个观察者模型,after_create创建一个news_feed类型的项目。
问题是这个观察者,现在将创建一个news_feed永远保存这是一个巨大的firehose。
所以我想这样做,这个模型的news_feed只注入每个会话或每X分钟。所以我给模型添加了一个last_feeded_at列。
问题是,当我尝试更新观察者中的该字段以标记该字段受到影响时,触发观察者,这会造成一切混乱。
什么是处理这个最好的方法是什么?我愿意接受所有聪明的建议。
感谢
@史蒂夫,谢谢,但这住在哪里?你能否提供一些关于用例的更多背景知识?真正兴奋地学习一种更聪明的方式来做我想做的事情。我的代码越来越杂乱!谢谢 – AnApprentice 2010-10-30 05:43:05
嗯,它是你的应用程序,但我认为你有一个控制器,根据你所描述的,处理用户在创建和编辑文档方面的交互。同样,从您的描述中可以看出,您希望在给定会话中首次访问文档时创建新闻Feed。所以,我想我会说在before_filter中将它命中并将结果赋给一个实例变量,以便您的视图可以显示它。或者...有可能我错过了这个功能的意图。 – 2010-10-30 06:14:30
控制器只应在模型上执行1个动作,例如保存文档的更新。文档模型应该执行任何相关的操作。 – Ariejan 2010-10-30 08:39:48