この猫の皮を剥ぐ方法は無数にありますが、ここでは 1 つの方法を紹介します。
User を Pages に結合する 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
私が言ったように、多くの方法で、これは単純な方法の 1 つにすぎません。個人的には、この種のタスクには redis を使用します。