Что делают помощник и вспомогательный метод?
helper_method
просто: это делает некоторые или все методы контроллера доступными для просмотра.
что это helper
? Это наоборот, т. е. импорт вспомогательные методы в файл или модуль? (Может быть, имя helper
и helper_method
похожи. Они скорее могут быть share_methods_with_view
и import_methods_from_view
)
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