В этом посте мы рассмотрим:
- Что такое хелперы и чем они полезны
- Зачем использовать Rails-хелпер
link_to
Хелперы
Чтобы понять концепцию хелперов, давайте взглянем на переменную текущего времени, которая была определена в нашем контроллере (что хорошо).
Что если мы хотим форматировать то, как выглядит это время?
Должен ли этот код быть во View? Вряд ли, в этом случае он не будет многоразовым, то есть его придется определять каждый раз.
Должен ли он быть в контроллере? Вряд ли, потому что контроллер должен быть независим от формата представления.
Так что, здесь приходят на помощь хелперы.
Каждый раз, когда вы генерируете контроллер, также генерируется (пустой) хелпер.
Давайте добавим в него метод.
Интересно то, что метод внутри хелпера будет доступен для всех view в вашем приложении.
Не забываем указать formatted_time(@time)
во view.
И это работает, на странице показывается отформатированное время.
Встроенные в Rails хелперы: link_to
Rails предоставляет много встроенных хелперов.
Один из них, это хелпер link_to
.
link_to name, path
генерирует гиперссылку, которая отображает имя (name) и ссылается на путь (path).
В вашем HTML вы будете иметь тег <a>
.
Путь может быть обычной строкой или маршрутом указанным в файле routes.rb, и оканчиваться на _url
(полный путь) или _path
(относительный путь).
Это полезно потому, что вы можете указать переменную, и ваша страница изменится автоматически, если изменится эта переменная.
link_to в действии
Добавим пару ссылок в наш view.
Первый параметр это имя.
В первом примере мы ссылаемся на Google и определяем полный URL, во втором — используем внутренний путь, определенный в routes.rb.
Конечно, это будет работать без проблем.
В итоге
Хелперы являются “макросами” для вашего Представления.
При использовании link_to
, нет необходимости что-то менять, когда меняется путь.
Поэтому он может быть удобнее простого HTML-тега.
Спасибо, все понятно!