Spec-Zone.ru › Ruby on Rails 4.2

модуль ActionController::Helpers

Включенные модули:
AbstractController::Helpers

Фреймворк Rails предоставляет большое количество помощников для работы с активами, датами, формами, числами и объектами моделей, чтобы назвать лишь некоторые. Эти помощники доступны по умолчанию для всех шаблонов.

Помимо использования стандартных помощников шаблонов, настоятельно рекомендуется создавать пользовательские помощники для извлечения сложной логики или повторно используемой функциональности. По умолчанию каждый контроллер включает все помощники. Эти помощники доступны только в контроллере через .helpers

В предыдущих версиях Rails контроллер включал помощника, имя которого совпадало с именем контроллера, например, MyController автоматически включал MyHelper. Чтобы вернуть старое поведение, установите config.action_controller.include_all_helpers в false.

Дополнительные помощники можно указать, используя метод класса helper в ActionController::Base или любом контроллере, который от него наследуется.

Метод to_s из класса Time можно обернуть в метод помощника, чтобы отобразить пользовательское сообщение, если объект Time пустой:

module FormattedTimeHelper
  def format_time(time, format=:long, blank_message=" ")
    time.blank? ? blank_message : time.to_s(format)
  end
end

Теперь FormattedTimeHelper можно включить в контроллер, используя метод класса helper:

class EventsController < ActionController::Base
  helper FormattedTimeHelper
  def index
    @events = Event.all
  end
end

Затем, в любом представлении, отображаемом EventController, можно вызвать метод format_time:

<% @events.each do |event| -%>
  <p>
    <%= format_time(event.time, :short, "N/A") %> | <%= event.name %>
  </p>
<% end -%>

Наконец, предположим, что у нас есть два экземпляра события, один с временем, а другой — без, вывод может выглядеть так:

23 Aug 11:30 | Carolina Railhawks Soccer Match
N/A | Carolina Railhaws Training Workshop

Атрибуты

helpers_path[RW]

© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API