铁路助手的位置

时间:2011-05-08 17:59:33

标签: ruby-on-rails

我用一个函数创建了一个简单的帮助器并将它放在相关的controller_helper中,我注意到该函数在整个应用程序视图中都是有效的。

为什么?帮助者不应只对他的控制者有效吗?

2 个答案:

答案 0 :(得分:2)

该过程如下:

如果您处于属于控制器foo的视图中并且您调用了名为my_helper的帮助程序:

  • 如果在foo的助手中定义,则从此处执行

  • 如果没有在foo帮助器中定义但在另一个帮助器中定义,比如bar,则从那里执行

  • 如果不在foobar中,则会在application_helper中进行检查。如果此处不存在,则会引发错误。

答案 1 :(得分:0)

这是有道理的,但这不是完整的故事。我有一个控制器MainController和一个控制器AlsoController,并在每个辅助模块中定义了一个名为wherefrom的帮助程序,即MainHelperAlsoHelper。但是,如果我尝试在wherefrom视图中使用also,则会使用MainHelper中定义的帮助程序而不是AlsoHelper中的帮助程序。