如何为大多数观看过的帖子生成视图

时间:2015-02-25 05:05:48

标签: ruby-on-rails ruby count

我正在尝试在我的rails应用中生成过去24小时内查看次数最多的8个帖子的视图。我已经实现了一个视图计数器,它正在工作,但我不知道如何找到最常查看的8个。我希望每个帖子都显示在自己的按钮类型模块中。

这是我的引脚型号:

class Pin < ActiveRecord::Base
is_impressionable :counter_cache => true, :unique => true # view counter

belongs_to :user
end

如果有人能够解释需要添加到我的引脚控制器中的内容以及添加到我的视图中的内容以便每个顶部查看的引脚都显示在其自己的单独按钮中,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我假设您正在使用Pin模型中的列impressions_count更新网站的每个视图。

我将举例说明您希望在Pin控制器的索引操作中显示前8个查看次数最多的帖子:

控制器/ pins_controller.rb

class PinsController < ApplicationController

  def index
    #You can use whether 1.days.ago or 24.hours.ago
    @top_eight_posts = Pin.where(updated_at: 1.days.ago..DateTime.now).order('impressions_count DESC').first(8)
  end

end

然后在索引视图或任何与控制器中的操作匹配的视图中,您只需要执行每个循环以获取8个顶部帖子

视图/针/ index.html.erb

<% @top_eight_posts.each do |post| %>
  <!-- Assuming Pin Post have a title -->
  <%= post.title %>
  <!-- Assuming Pin Post have a content -->
  <%= post.content %>
<% end %>

我希望它有所帮助!!

PD:更新了24小时过滤器