Как мне создать систему голосования Up / Down, такую ​​как stackoverflow? - PullRequest
1 голос
/ 30 сентября 2010

Я создаю сайт в 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 Ответ

5 голосов
/ 30 сентября 2010

Таблица 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...