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