如何正确实现拇指向上/向下?

时间:2011-09-15 08:07:07

标签: jquery ruby ruby-on-rails-3 json

我想确保每个表项只能点击一次拇指向上或向下一次吗?

我的访问者未登录,因此我的假设是,我可以检查您的IP,并使用JSON将信息发送到数据库以记录IP地址和该表条目的ID。然后,如果用户再次单击竖起大拇指,请使用JSON执行快速SQL存在以确定是否存在IP和文本ID。如果没有,则点击竖起大拇指。

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

使用ruby 1.9.2,rails 3.1,jquery。

2 个答案:

答案 0 :(得分:0)

我对这种功能的实现与你的非常相似:

  • 如果用户点击某个按钮,请通过Javascript将其禁用并向服务器发送AJAX请求
  • 在数据库中,不要向数据库添加新列。最好添加一个存储IP,投票(向上或向下)和ID引用的新表。这将有助于您保存表格,并且将来更容易更改您的投票系统。
  • 当您从PHP绘制页面时,如果用户之前已投票,请考虑投票并禁用按钮(向上和向下)。

正如Michael指出的那样,在某些情况下,仅限IP的方法还不够好。也许您可以通过添加其他特定于浏览器的变量来重新强制系统,但这取决于您需要的安全程度(因为用户可以使用两个不同的浏览器进行两次投票)。您可以找到有关此here的更多信息。

我希望这对你有用。

答案 1 :(得分:0)

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

在这种情况下,客户端上的cookie可能会更准确,但由于用户可以清除cookie或完全禁用cookie,因此也不是100%可靠。

这是一个设计问题而不是技术问题;存在跟踪用户状态而不用任何方式识别用户的基本问题。但如果您希望为用户提供便利,而不必强行登录,那么这是一种妥协。