답변:
이 방법 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
레일> 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
include UserHelper
이 HomeHelper
컨트롤러 대신 모듈 에 있음을 알고 계셨습니까 ? 컨트롤러에 헬퍼 모듈을 포함시키는 AFAIK는 뷰와 메소드를 공유하지 않습니다.