我有一个使用设计进行身份验证的简单 Rails 应用程序。我有兴趣为每个用户创建一个在他们访问某些页面时更新的计数器。
例如:
用户计数器 = 4
用户访问页面 A 用户计数器 = 3
用户再次访问页面 A 用户计数器 = 3
用户访问页面 B 用户计数器 = 2
我正在研究计数器缓存,它计算与用户关联的模型的实例数,这在正确的道路上是否有点?任何帮助,将不胜感激。谢谢!
我有一个使用设计进行身份验证的简单 Rails 应用程序。我有兴趣为每个用户创建一个在他们访问某些页面时更新的计数器。
例如:
用户计数器 = 4
用户访问页面 A 用户计数器 = 3
用户再次访问页面 A 用户计数器 = 3
用户访问页面 B 用户计数器 = 2
我正在研究计数器缓存,它计算与用户关联的模型的实例数,这在正确的道路上是否有点?任何帮助,将不胜感激。谢谢!
有一百万种方法可以剥这只猫的皮......但是这里有一个。
您需要创建一个将用户连接到页面的 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 来完成这类任务。