Spec-Zone.ru › Ruby on Rails 7.2

модуль ActionController::Helpers

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

Контроллер Действия Helpers

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

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

В предыдущих версиях Rails контроллер включал хелпер, соответствующий имени контроллера, например, MyController автоматически включал MyHelper. Вы можете вернуться к старому поведению следующим образом:

# config/application.rb
class Application < Rails::Application
  config.action_controller.include_all_helpers = false
end

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

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

module FormattedTimeHelper
  def format_time(time, format=:long, blank_message="&nbsp;")
    time.blank? ? blank_message : time.to_fs(format)
  end
end

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

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

Затем в любом представлении, рендерируемом EventsController, можно вызвать метод 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 Railhawks Training Workshop

Атрибуты

helpers_path[RW]

Публичные методы экземпляра

helpers() Показать исходный код
# File actionpack/lib/action_controller/metal/helpers.rb, line 125
def helpers
  @_helper_proxy ||= view_context
end

Предоставляет прокси для доступа к методам хелпера извне представления.

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

Spec-Zone.ru

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