2014-06-08 5 views
1

Я пытаюсь найти способ кол-во кликов на определенной кнопке, отфильтрованной по IP-адресу пользователя, так что регистрируется только 1 клик (например, в день).Создать Cookie Rails

Сейчас я не пытаюсь найти полностью стабильное решение для этого, просто чтобы отфильтровать клики, чтобы пользователь не мог щелкнуть 5 раз и заполнить счетчик 5 щелчками.

Так я думал, почему не установить кук (cookie[:installed] = true) так что я могу сделать что-то вроде этого:

def click_button 
    url_to_redirect 
    unless cookies[:installed] 
     click_counter.increment 
    end 
    end 

(я не знаю, что это хорошее решение для этого, просто мозгового штурма Если кто-то. есть лучшая идея, вы более чем добро пожаловать в объяснение мне.)

Кроме того, мне не повезло с реализацией этого «Cookie Solution», хотя я читал через Rails API on Cookies.

Как я могу реализовать это и где начать? (Я читал, что создание Логики в Модели Плохо).

Простите мой Newbieness, Приветствия

Проблема Прогресс:

1.) В моем шоу действий контроллера я установить Cookie =>

def show 
    cookies[:installed] = false 
    end 
+0

Вы можете опубликовать код просмотра, где отображается ссылка, и код контроллера. –

+0

Это простая ссылка (link_to «Скачать», «#»), и она находится в представлении SHOW. Действие контроллера пуст, потому что я пытаюсь найти, как это сделать :) –

+0

если количество достигает 5, то ссылку не следует нажимать? –

ответ

0

я скорее магазин эту информацию в сеансе, а не в файле cookie. Так, например, вот так.

def download 
    unless session[:clicked] do 
    session[:clicked] = true 
    do_something #remember to change this 
    end 
end 

Вы также можете хранить эту информацию в базе данных, чтобы убедиться, что пользователь не может обойти вашу проверку, запустив какой-либо другой браузер или очистки куки. Например, создайте модель Downloader с полем :ip и найдите загрузчиков на request.remote_ip перед отправкой файла.

И если мы говорим о загрузке файла, воспользуйтесь send_file вместо перенаправления.

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