对于“帖子浏览”功能,这两个选项中哪一个更好?

时间:2012-11-12 00:32:29

标签: ruby-on-rails cookies view

发布视图:初始化为0,并在用户阅读帖子时递增。如果用户阅读相同的帖子,则不应该递增。

为了实现post view功能,我想到了两个选项。

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

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

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

    感谢您的帮助。

1 个答案:

答案 0 :(得分: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]