Я нахожусь в процессе создания ссылок для голосования (большие пальцы вверх, большие пальцы вниз, избранные и т. Д.).
Я использую маршруты RESTful rails, и мне удобно использовать link_to практически для всего,включая не-GET запросы.link_to проще в стиле, чем button_to, так как button_to содержит целую форму с вводом типа submit, который всегда казался более тяжелым, чем просто link_to с: method =>: delete или: method =>: post.Единственный раз, когда я использую форму, это когда мне нужно собрать данные от пользователя, и я никогда не использую button_to.
Я пошел на youtube, чтобы посмотреть, как они оформляют свои кнопки для голосования, и они на самом деле используют кнопки.
<button onclick=";return false;" title="I dislike this" type="button" class="end yt-uix-tooltip-reverse yt-uix-button yt-uix-tooltip yt-uix-button-empty" id="watch-unlike" data-button-action="yt.www.watch.actions.unlike" role="button" data-tooltip-text="I dislike this">
<img class="yt-uix-button-icon yt-uix-button-icon-watch-unlike" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="">
</button>
Из этого фрагмента видно, что они используют кнопку просто как контейнер для спрайта изображения.Кнопка не окружена тегами формы, поэтому я предполагаю, что есть ненавязчивый js, который запускает HTTP POST в другом месте.
Youtube принадлежит Google, поэтому я думаю, что их работа должна быть лучшей практикой, да?
Я не знаю ни одного грубого способа сделать кнопку без формы, если не считать написания тега кнопки напрямую, что всегда заставляет меня дважды подумать, когда я собираюсь сделать что-то, чего рельсы уже не делаютпредоставьте мне.
Итак, мой вопрос, каково техническое преимущество (если таковое имеется) в том, чтобы сделать это способом YouTube?