Ruby on rails 使用request.remote\u ip创建特定关节的视图计数

Ruby on rails 使用request.remote\u ip创建特定关节的视图计数,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个rails应用程序,它有一个故事模型和一个视图计数模型。当用户进入故事显示页面时,故事视图计数将增加1。从我所做的事情来看,这个故事无法从我下面的代码中增加 故事控制器 def show @story = Story.find(params[:id]) @story.viewed!(request.remote_ip) respond_to do |format| format.html # show.html.erb format.

我有一个rails应用程序,它有一个故事模型和一个视图计数模型。当用户进入故事显示页面时,故事视图计数将增加1。从我所做的事情来看,这个故事无法从我下面的代码中增加

故事控制器

  def show
    @story = Story.find(params[:id])
    @story.viewed!(request.remote_ip)

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @story }
    end
  end
故事模型

  def viewed!(ip)
    view_count_id = "#{self.id}-#{ip}"
    if ViewsCount.where({:id => view_count_id}).first.nil?
      ViewsCount.create(:id => view_count_id)
      self.views_count += 1
    end
  end
我不能增加故事的数量


我采取的方法防止用户按下重新加载按钮以不断增加计数器。请找出更好的方法,或者我错在哪里了

我是用gem做到这一点的