有时我需要在控制器中使用辅助方法(清理方法,将文本渲染回视图,各种其他应用程序)。什么是正确的方法?我有:
self.class.helpers.myhelper
view_context.myhelper
include MyHelper; myhelper
helper MyHelper; myhelper
答案 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
,因为这将使所有辅助方法成为控制器操作