Что делают helper и helper_method? - PullRequest
192 голосов
/ 22 октября 2010

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

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

ссылка

1 Ответ

278 голосов
/ 22 октября 2010

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

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

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

# application_controller.rb
helper :all

Для Rails> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...