2013-04-17 4 views
3

У меня есть простое приложение с рельсами, использующее программу для аутентификации. Я заинтересован в создании счетчика для каждого пользователя, который обновляется при посещении определенных страниц.Счетчик невидимых страниц Rails

Например:

счетчик пользователя = 4

страница посещения пользователя Счетчик пользователя = 3

пользователь посещает страницы А раз Пользователь Счетчик = 3

пользователя страница посещения B Пользовательский счетчик = 2

Я смотрел счетчик c ache, который подсчитывает количество экземпляров модели, связанной с пользователем, является ли это на правильном пути? Любая помощь будет оценена по достоинству. Благодаря!

+0

Дайте мне знать, если ответ ниже решает ваш вопрос. – omarvelous

ответ

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 для выполнения этой задачи.

+0

Спасибо! Извините, мне потребовалось столько времени, чтобы отметить это как правильно! – Justin

Смежные вопросы