Почему Rails использует вспомогательные методы, такие как link_to вместо <a href...>? - PullRequest
5 голосов
/ 17 октября 2010

Я изучаю Rails, и я заметил, что Rails постоянно использует вспомогательный метод, такой как link_to, вместо использования простого HTML. Теперь я могу понять, почему они будут использовать, они будут использовать некоторые вспомогательные методы, но я не понимаю, почему они предпочитают вспомогательные методы, а не просто кодируют HTML напрямую. Почему Rails предпочитает вспомогательный метод вместо того, чтобы писать HTML вручную? Почему команда Rails сделала этот выбор дизайна?

Ответы [ 2 ]

11 голосов
/ 17 октября 2010

В приложениях Rails ссылки часто создаются с использованием как методов для URL, так и методов для контента, например,

<%= link_to @article.user.name, @article.user %>

Это определенно более удобно, чем вводить их в теги <a> вручную.

<a href="<%= user_path(@article.user) %>"><%= @article.user.name %></a>

(Вы используете маршрутизатор для генерации этих URL-адресов, верно? Что произойдет, если вы жестко наберете /users/1 и решите, что хотите, чтобы он был /users/1-John-Doe позже?)

Однако для статических ссылок это не имеет большого значения.

<a href="http://www.google.com/">Google</a>
or
<%= link_to 'Google', 'http://www.google.com/' %>

Можно привести аргументы в пользу первого варианта производительности или второго варианта в единообразном стиле, поскольку оба варианта одинаково управляемы.

7 голосов
/ 17 октября 2010

Если маршрутизация URL для модели изменилась, то и рукописный HTML тоже должен быть обновлен;при прохождении через функцию поведение (ссылка на одну из этих вещей) отделяется от текущей схемы маршрутизации.

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