我正在开发一个Ruby / Rails应用程序,我只希望用户能够让所有其他用户一次看到一个帖子。所有用户都可以查看其他用户的所有帖子,但只能查看一个帖子。这样做最简单的方法是什么?
这将是所有用户共享的Feed。
目标是没有用户在主要Feed上有多个帖子。因此,当他们发布新帖子时,它会从共享Feed中删除之前的帖子。
答案 0 :(得分:0)
似乎你必须为帖子设置一些简单的“结账”系统。当任何用户查看某个帖子时,它会自动“检出”该帖子,而其他任何人都无法看到该帖子。在我看来,棘手的部分是检查该帖子。你怎么知道有人在看帖子的时候?一个相当明确的方法是,如果用户导航到不同的页面,但这不是唯一的方法,并且仅仅因为有人导航到新页面并不意味着他们没有将原始帖子打开在不同的选项卡中。如果观看帖子的用户刚刚站起来并离开电脑一天,帖子仍然响起怎么办?或者如果他们将帖子打开,但转到其他浏览活动会怎么样?
似乎您可能需要在一段时间后让每个结账方式“过期”,并且查看帖子的用户可以在结帐时段即将到期时“续订”该帖子。 / p>
然后,显然,只有当某个帖子尚未被其他人检出时,您才能让用户查看该帖子。
我很乐意提供关于如何实现这样一个系统的细节的想法,但我会保留以后以防其他人有更好的概念,或者我完全误解了你的问题。
答案 1 :(得分:0)
您可以将post_id和post_viewed_at属性添加到用户记录中,并尝试使其保持最新。
但是有一些极端情况会导致问题:
当用户导航或关闭窗口时,您需要使用一些JavaScript来确保将post_id和post_viewed_at属性清零。
使用post_viewed_at时间戳,您还可以实现到期时间,以防有时您没有抓住用户导航的情况。
另一个问题是,对于拥有许多用户的网站,这可能会导致大量数据库事务。