好的,這裏是我在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