我正试图在用户的IP地址过滤的特定按钮上找到计数点击次数的方法,因此只注册了1次点击(例如每天)。
现在我不是要为此找到一个完全稳定的解决方案,只是过滤掉点击次数,这样用户就无法点击5次,只需点击5次就可以填充计数器。
所以我想为什么不设置cookie (cookie[:installed] = true)
所以我可以做这样的事情:
def click_button
url_to_redirect
unless cookies[:installed]
click_counter.increment
end
end
(我不知道这是否是一个很好的解决方案,只是头脑风暴。如果有人有更好的想法,那么欢迎你向我解释。)
除此之外,虽然我通读了Rails API on Cookies,但我没有运气实施这个“Cookie解决方案”。
我如何实现这一点以及我从哪里开始? (我读到在模型中创建逻辑是坏的。)
原谅我的新手,干杯
问题进展:
1。)在我的Controller的Show Action中,我设置Cookie =>
def show
cookies[:installed] = false
end
答案 0 :(得分:0)
我宁愿将此信息存储在会话中,而不是存储在cookie中。例如,像这样。
def download
unless session[:clicked] do
session[:clicked] = true
do_something #remember to change this
end
end
您还可以将该信息存储在数据库中,以确保用户无法通过启动其他浏览器或清理Cookie来绕过您的检查。例如,使用Downloader
字段创建:ip
模型,并在提供文件之前按request.remote_ip
搜索下载程序。
如果我们谈论文件下载,请记住使用send_file
而不是重定向。