def show
Bottle.increment_counter :views, @bottle
end
工作得很好,但是如果同一个人一遍又一遍地看它,它会不断递增。我应该如何解决这个问题,让唯一的命中增加它?创建简单的点击计数器
我应该有一个ip
模型,并使我的Bottle模型have_many
ips,ips是谁访问它的人?然后,做东西这个? (我提取出来变成一个类的方法,但是这仅仅是给你看):
def show
if [email protected]?(request.remote_ip)
Bottle.increment_counter :views, @bottle
Ip.create(bottle_id: @bottle, ip: request.remote_ip)
end
end
我觉得上面会的工作,但不会这个结果在数据库中非常迅速填满?或者这是一种习惯,不管?如果这不是一种做法,我怎么能以某种方式对cookie进行同样的操作? cookie的结构是什么?
另外,我知道有一堆命中计数器的宝石,但我想这样做我自己(在您的帮助:P)
这正是我一直在寻找! – Doctor06