Что делают помощник и вспомогательный метод?


helper_method просто: это делает некоторые или все методы контроллера доступными для просмотра.

что это helper? Это наоборот, т. е. импорт вспомогательные методы в файл или модуль? (Может быть, имя helper и helper_method похожи. Они скорее могут быть share_methods_with_view и import_methods_from_view)

ссылка

1 183

1 ответ:

метод helper_method это явное совместное использование некоторых методов, определенных в контроллере, чтобы сделать их доступными для представления. Это используется для любого метода, к которому вам нужно получить доступ как с контроллеров, так и с помощников/представлений (стандартные вспомогательные методы недоступны в контроллерах). например, общий случай использования:

#application_controller.rb
def current_user
  @current_user ||= User.find_by_id!(session[:user_id])
end
helper_method :current_user

the helper метод с другой стороны, предназначен для импорта всего помощника в представления, предоставляемые контроллером (и это унаследованные контроллеры). Что это означает делать

# application_controller.rb
helper :all

Рельсы > 3.1

# application.rb
config.action_controller.include_all_helpers = true
# This is the default anyway, but worth knowing how to turn it off

делает все вспомогательные модули доступными для всех представлений (по крайней мере для всех контроллеров, наследующих от application_controller.

# home_controller.rb
helper UserHelper

делает методы UserHelper доступными для представлений для действий домашнего контроллера. Это эквивалентно выполнению:

# HomeHelper
include UserHelper