使用Ruby排名帖子

时间:2016-08-26 21:34:43

标签: ruby-on-rails ruby

好的,所以我正在使用沙袋宝石来追踪我的帖子的点击次数。我想要做的是有一个排名系统。因此,观看次数最多的帖子将是第1个,并且说第10个观看的帖子会说第10个。有没有人以前这样做过,或者可以让我朝着正确的方向努力。

现在我在帖子上显示

的点击次数
<div class="votes">
      <strong>VIEWS</strong>
<%= @post.hits %>

我只是通过整体视图对它们进行排名,这是我的帖子控制器

def index
 if params[:sort_param] == "views"
  @posts = Post.sort_by_popularity('DESC')

  elsif params[:sort_param] == "likes"
  @posts = Post.all.order(:cached_votes_up => :desc)

  else
    @posts = Post.all.order("created_at DESC")
end

我不知道其他任何代码对任何人都有帮助。我很乐意添加更多有用的代码。我只想弄清楚如何在帖子上对节目进行排名。因此,当您点击帖子时,您会看到帖子在视图上的排名。例如,您将看到450个视图(我已经拥有此视图)和排名第5。我希望人们能够看到帖子在观看次数上的排名。我只是不知道从哪里开始

1 个答案:

答案 0 :(得分:1)

让我们说@post有你试图找出排名的帖子。下一步是搜索你带的数组

  @posts = Post.sort_by_popularity('DESC')

找到@post出现的位置。您可以尝试这样做:

@ranking = @posts.find_index(@post) + 1

现在你有关于点击的帖子相对于其他人的位置。另外一个是因为数组从零开始