Jquery 如何正确执行拇指向上/向下?

Jquery 如何正确执行拇指向上/向下?,jquery,ruby,ruby-on-rails-3,json,Jquery,Ruby,Ruby On Rails 3,Json,我想确保每个表条目只能单击一次“竖起大拇指”或“竖起大拇指” 我的访问者没有登录,所以我的假设是,我可以检查您的IP,并使用JSON将信息发送到db以记录IP地址和该表条目的ID。然后,如果用户再次单击“竖起大拇指”,请使用JSON快速执行SQL exists以确定IP和文本ID是否存在。如果没有,那么竖起大拇指的点击就会通过 看起来这是一个乏味而不优雅的解决方案,速度很慢,占用了大量的数据库空间。有改进的想法/帮助吗 使用ruby 1.9.2、rails 3.1、jquery。我对此类功能的实

我想确保每个表条目只能单击一次“竖起大拇指”或“竖起大拇指”

我的访问者没有登录,所以我的假设是,我可以检查您的IP,并使用JSON将信息发送到db以记录IP地址和该表条目的ID。然后,如果用户再次单击“竖起大拇指”,请使用JSON快速执行SQL exists以确定IP和文本ID是否存在。如果没有,那么竖起大拇指的点击就会通过

看起来这是一个乏味而不优雅的解决方案,速度很慢,占用了大量的数据库空间。有改进的想法/帮助吗


使用ruby 1.9.2、rails 3.1、jquery。

我对此类功能的实现与您的非常相似:

  • 若用户单击某个按钮,则通过Javascript禁用该按钮,并向服务器发送AJAX请求
  • 在数据库中,不要向数据库中添加新列。最好添加一个存储IP、投票(向上或向下)和ID引用的新表。这将有助于您维护您的桌子,并且在将来更容易更改您的投票系统
  • 当您从PHP绘制页面时,请考虑投票,如果用户以前投票过,请禁用绘制按钮(向上和向下)
正如Michael所指出的,在某些情况下,仅使用IP的方法是不够好的。也许您可以通过添加其他特定于浏览器的变量来强化系统,但这取决于您需要的安全程度(因为用户可以使用两种不同的浏览器进行两次投票)。您将找到有关此的更多信息


我希望这对您有意义。

使用IP地址作为用户标识符对于NAT路由器后面的任何用户(例如任何办公室或商业组织)都会有问题,因为这些用户都会被识别为同一用户

在这种情况下,客户端上的cookie可能更准确,尽管这也不是100%可靠,因为用户可以清除cookie,或者可能完全禁用cookie


这是一个设计问题,而不是技术问题;有一个基本问题是跟踪用户状态,而无需任何方法来识别用户。但是,如果您希望为用户提供与您的站点交互的便利,而不必被迫登录,则这是一种折衷办法。

您的解决方案听起来是实现这一点的最佳方法……基于IP的解决方案的问题是,公司等的人通常共享一个IP。当我们试图以这种方式阻止用户时,我们遇到了这个问题,并且不得不停止。可能是IP地址+用户代理组合之类的。