Хелперы

Главная / Хелперы

В этом посте мы рассмотрим:

  • Что такое хелперы и чем они полезны
  • Зачем использовать 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-тега.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *