2013-04-16 16 views
1

我正在研究Ruby/Rails應用程序,其中我只希望用戶能夠讓所有其他用戶一次看到一個帖子。所有用戶都可以看到其他用戶的所有帖子,但只能看到一個帖子。這樣做最簡單的方法是什麼?Ruby/Rails如何限制用戶可以看到其他用戶的帖子數量?

這將在所有用戶共享的源上進行。

目標是沒有用戶在主要Feed上有多個帖子。因此,當他們發佈新帖子時,它會從共享Feed中刪除以前的帖子。

+0

您的意思是在用戶的「show」頁面上還是在Feed中?無論哪種方式,你只是按創建時間過濾,然後只顯示一個。 –

+0

實際上,您可能會有類似於<%= post.author%>的<%= time_ago_in_words(post.created_at)%>以前的內容'這樣,如果提交了一篇文章,它會說道格拉斯說3分鐘前' – David

回答

0

似乎你不得不爲某個帖子設置某種簡單的「結賬」系統。當任何用戶查看某個帖子時,它會自動「檢出」該帖子,而其他人無法看到該帖子。在我看來,棘手的部分是檢查這個帖子。你怎麼知道某人完成了看帖子?一種相當確定的方式是,如果用戶導航到不同的頁面,但這不是唯一的方式,並且僅僅因爲有人導航到新頁面並不意味着他們不會將原始文章保留在不同的選項卡中。如果查看帖子的用戶剛剛起牀離開計算機一天,帖子還在嗎?或者如果他們讓帖子保持打開狀態,但是轉移到其他瀏覽活動上呢?

看起來您可能需要讓每個結帳在一段時間後「過期」,也許查看帖子的用戶在結賬週期即將到期時可以「更新」帖子。

然後,顯然,只有當用戶沒有將其他人檢出時,才允許用戶查看特定帖子。

我很高興提供關於如何實現這樣一個系統的細節和想法,但是如果其他人有更好的概念想法,或者我完全誤解了你的問題。

0

您可以將post_id和post_viewed_at屬性添加到用戶記錄,並嘗試保持最新狀態。

但也有一對夫婦的角落情況下,這可能會導致問題:

    當用戶在用戶與後退按鈕或輸入另一個URL 導航離開關閉瀏覽器窗口

您需要一些JavaScript來確保在用戶導航或關閉窗口時將post_id和post_viewed_at屬性歸零。

使用post_viewed_at時間戳,您還可以實施到期時間,以防萬一有些情況下您沒有趕上用戶導航。

另一個問題是,這可能會導致有很多用戶的網站的很多數據庫事務。

相關問題