代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

帮助者和帮助者方法做什么?

  •  189
  • nonopolarity  · 技术社区  · 14 年前

    helper_method 很简单:它使视图可以使用控制器的某些或所有方法。

    是什么 helper ?它是相反的方式吗,也就是说,它将助手方法导入到一个文件或模块中?(也许这个名字 帮手 亥珀尔法 一模一样。他们宁愿 share_methods_with_view import_methods_from_view )

    reference

    1 回复  |  直到 7 年前
        1
  •  276
  •   Carpela    8 年前

    方法 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
    

    使所有帮助程序模块对所有视图可用(至少对继承自应用程序控制器的所有控制器可用)。

    # home_controller.rb
    helper UserHelper
    

    使UserHelper方法可用于查看主控制器的操作。这相当于:

    # HomeHelper
    include UserHelper