0

帖子浏览量:初始化为 0,当用户阅读帖子时递增。如果用户阅读相同的帖子,则不应增加。

为了实现后视图功能,我想到了两个选项。

  1. 每个帖子都有一个表格,列出了所有阅读过帖子的用户。在 PostController 中,postview 函数会首先尝试在表中找到用户,如果找不到用户,它会增加查看次数。

  2. 使用 cookie。每当用户阅读帖子时,我都会给他一个特定于帖子的 cookie。例如,cookie[:postId] = 1。因此 post 控制器中的视图函数可以在增加视图数量之前简单地检查用户是否有特定帖子的 cookie。

我不确定哪个选项会更好。我认为第二个选项如果合适的话会更好,因为您可以在数据库中节省内存。但这个选项在网络流量方面会更糟吗?我不是 100% 确定这两个选项是否都有效,或者在效率方面哪个更好。

我感谢您的帮助。

4

1 回答 1

0

使用印象派(或从中获取想法):https ://github.com/charlotte-ruby/impressionist

然后,您可以获得对记录的独特印象,如下所示:

# only record impression if the request has a unique combination of type, id, and session
impressionist :unique => [:impressionable_type, :impressionable_id, :session_hash]
于 2012-11-12T05:51:27.533 回答