модуль ActionController::Helpers
Помощники Action Controller
Фреймворк 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=" ")
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
Атрибуты
Публичные методы экземпляров
# File actionpack/lib/action_controller/metal/helpers.rb, line 117 def helpers @_helper_proxy ||= view_context end
Предоставляет прокси для доступа к методам-помощникам извне представления.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.