我有一个简单的rails应用程序,使用devise进行身份验证。我有兴趣为每个用户创建一个计数器,当他们访问某些页面时进行更新。
例如:
用户计数器= 4
用户访问第A页 用户计数器= 3
用户再次访问A页 用户计数器= 3
用户访问第B页 用户计数器= 2
我正在调查计数器缓存,它计算与用户关联的模型的实例数量,这有点在正确的路径上吗?任何帮助,将不胜感激。谢谢!
答案 0 :(得分:1)
有一百万种方法可以给这只猫上皮.....但不过这是一次拍摄。
您需要创建一个将用户连接到页面的PageVisits连接模型,并且该模型上有您手动递增的计数器。
class User < ActiveRecord::Base
has_many :page_visits
end
class Page < ActiveRecord::Base
has_many :page_visits
end
class PageVisits < ActiveRecord::Base
belongs_to :page
belongs_to :user
end
class CampaignsController < ApplicationController
def show
@page = Page.find(params[:id]
if current_user
page_visit = @page.page_visits.where(user_id: current_user.id).first_or_create
page_visit.increment(:visits)
end
respond_with(@page)
end
end
就像我说的,很多方面,这只是一种简单的方式。我个人使用redis来完成这项任务。