Я разрабатываю приложение в Rails 3, используя базу данных nosql. Я пытаюсь добавить функцию «Follow», похожую на twitter или github.
Что касается разметки, я определил, что есть три способа сделать это.
1) Используйте обычный анкер. (Github использует этот метод)
<a href="/users/follow?target=Joe">Follow</a>
2) Используйте кнопку. (Твиттер использует этот метод)
<button href="/friendships/create/">Follow</button>
3) Используйте форму с кнопкой отправки. (Имеет некоторые преимущества для меня, но я еще не видел, чтобы кто-то это делал.)
<form method="post" id="connection_new" class="connection_new" action="/users/follow">
<input type="hidden" value="60d7b563355243796dd8496e17d36329" name="target" id="target">
<input type="submit" value="Follow" name="commit" id="connection_submit">
</form>
Поскольку я хочу сохранить user_id в базе данных, а не имя пользователя, варианты 1 и 2 заставят меня выполнить запрос к базе данных, чтобы получить фактический user_id, тогда как вариант 3 позволит мне сохранить user_id в скрытом поле формы, чтобы Мне не нужно делать какие-либо поиски в базе данных. Я могу просто получить идентификатор из хэша параметров при отправке формы.
Я успешно заработал каждый из этих методов, но я хотел бы знать, как лучше всего это сделать. Какой способ более семантический, безопасный, лучше для пауков и т. д.? Есть ли причина, по которой твиттер и гитхаб не используют для этого формы?
Любое руководство будет оценено. Я склоняюсь к использованию метода формы, поскольку с тех пор мне не нужно запрашивать базу данных, чтобы получить идентификатор пользователя, но я беспокоюсь, что должна быть причина, по которой большие парни просто используют якоря или кнопки для этого.
Я новичок, так что полегче со мной, если я что-то упустил. Спасибо!