[ruby-on-rails] helper와 helper_method는 무엇을합니까?

helper_method 간단합니다 : 컨트롤러의 일부 또는 모든 메소드를 뷰에서 사용할 수있게합니다.

무엇입니까 helper? 다른 방법으로, 즉 도우미 메서드를 파일이나 모듈로 가져 오는가? (어쩌면 이름 helperhelper_method같을 수도 있습니다. 오히려 대신 share_methods_with_view및 일 수도 있습니다 import_methods_from_view)

참고



답변

이 방법 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


답변