如何创建像stackoverflow这样的Up / Down投票系统?

时间:2010-09-30 02:11:19

标签: ruby-on-rails ruby

我在Rails中创建一个网站,我想在Stackoverflow中添加一个像这里一样的投票/投票系统。

有人可以建议怎么做吗?我知道我会将每个投票输入数据库,但我的意思是,我如何编写投票按钮?我会用什么,任何人都可以帮助我。 Ajax不是必需的,但它会很好。

我打算尝试使用POST命令并执行类似的操作,

<form name="input" action="/grinders" method="POST">
<input type="hidden" name="id" value="<%=h grinder.id %>">
<input type="hidden" name="vote" value="up">
<input type="submit" value="Vote" />
</form>

但是,我收到了真实性令牌错误,老实说我不知道​​如何使用表单助手。

1 个答案:

答案 0 :(得分:5)

有一个votes表,如下所示:

[PK] vote_id, vote_type (up/down), [FK] post_id, [FK] user_id, time [optional]

还在score

中添加posts字段

然后您可以让投票按钮访问类似:/vote/post_id/type/的链接,例如:/vote/14098/up。这可以使用或不使用Ajax来完成。

当调用投票操作时,检查用户之前是否已对该帖子投票 - 如果是,则拒绝该投票。如果没有,请在votes表中创建包含相关值的行,并更新score表中的posts字段。