如何创建一个'页面计数器'在轨道控制器中

时间:2016-07-21 08:53:55

标签: ruby-on-rails ruby

我有一个Post模型,我想实现一种方法来计算通过posts_controller访问帖子的次数,这样我最终可以按视图计数来定位帖子。到目前为止,我已经创建了一个迁移,以添加一个'视图计数' post模型的列:

$(document).on("click", ".datarow", function(){

    var entryid = $(this).attr('data-artid'); /* ENTRY ID OF THE CLICKED ROW */

我基本上想在PostsController show方法中使用每次访问show动作时在view_count列上添加一个。

非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:2)

您可以在show操作中增加此计数器。

def show
  # ...
  @post.increment!(:view_count)
end

这里没有魔力:)

答案 1 :(得分:0)

使用rails increment来实现此目标

class PostsController < ApplicationController
  before_filter :find_post, only: [:show]
  before_filter :increment_view_count, only: [:show]

  def show
    # ...
  end

  private

  def find_post
    @post = Post.find(params[:id])
  end

  def increment_view_count
    @post.increment(:view_count)
  end
end