从Rails中的控制器调用helper方法时的“未定义方法”

有人知道我为什么会这样吗

未定义的#方法'my#u method'<MyController:0x1043a7410>

当我从ApplicationController子类中调用我的_方法(“字符串”)时?我的控制器看起来像

类MyController<应用控制器
def秀
@value=my_方法(参数[:字符串])
终止
终止

我的助手呢

模块应用程序助手
def my_方法(字符串)
返回字符串
终止
终止

最后是ApplicationController

类应用程序控制器<ActionController::Base
过滤后:设置内容类型
助手:全部
助手\u方法:当前用户\u会话,:当前用户
过滤器\参数\日志记录:密码
保护_免受伪造#有关详细信息,请参阅ActionController::RequestForgeryProtection

不能从控制器调用帮助程序。如果需要在多个控制器中使用该方法,最好在ApplicationController中创建该方法

EDIT:说清楚一点,我认为很多困惑(如果我错了,请纠正我)源于helper:all调用helper:all实际上只包括视图侧任何控制器下使用的所有帮助程序。在更早版本的Rails中,帮助程序的名称空间决定了哪些控制器的视图可以使用帮助程序

我希望这有帮助

发表评论