Я разрабатываю приложение в Rails 3, используя базу данных nosql. Я пытаюсь добавить функцию «Follow», похожую на твиттер или github.
С точки зрения разметки, я определил, что есть три способа сделать это.
1) Используйте обычный якорь. (Github использует этот метод)
<a href="/users/follow?target=Joe">Follow</a>
2) Используйте кнопку. (Twitter использует этот метод)
<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>
Поскольку я хочу сохранить идентификатор_пользователя в базе данных, а не имя пользователя, варианты 1 и 2 заставят меня выполнить запрос к базе данных, чтобы получить фактический идентификатор_пользователя, тогда как вариант 3 позволит мне сохранить идентификатор_пользователя в скрытой форме. поле, так что мне не нужно делать какие-либо поиски в базе данных. Я могу просто получить идентификатор из хэша params при отправке формы.
У меня успешно работает каждый из этих методов, но я хотел бы знать, каков наилучший способ сделать это. Какой способ более семантический, безопасный, лучше для пауков и т. Д.? Есть ли причина, по которой твиттер и github не используют формы для этого?
Любое руководство будет оценено. Я склоняюсь к использованию метода формы, поскольку с тех пор мне не нужно запрашивать базу данных, чтобы получить идентификатор пользователя, но я беспокоюсь, что должна быть причина, по которой большие парни просто используют для этого якоря или кнопки.
Я новичок, поэтому будьте спокойны, если я что-то упустил. Спасибо!