在rails控制器中引用帮助器的正确方法是什么?

时间:2015-06-28 12:40:15

标签: ruby-on-rails

有时我需要在控制器中使用辅助方法(清理方法,将文本渲染回视图,各种其他应用程序)。什么是正确的方法?我有:

  • self.class.helpers.myhelper
  • view_context.myhelper
  • include MyHelper; myhelper
  • helper MyHelper; myhelper

1 个答案:

答案 0 :(得分:1)

  • ActionController::Base.helpers是黄金标准;为方便起见,您可能希望将其包装在方法中:

    private
    
    def helpers
      ActionController::Base.helpers           
    end
    
  • helper MyHelper:如果您尝试将帮助器隔离到单个控制器的范围内,并且不希望在整个地方继续键入helpers
  • 避免view_context每次调用实例化一个视图实例,并假设您必须使用ActionView
  • 避免使用self.class.helpers.myhelper,因为这需要执行反射以确定当前类
  • 避免使用include MyHelper; myhelper,因为这将使所有辅助方法成为控制器操作