控制器helper_method

我想知道为什么有人应该使用控制器内的helper_method来创build一个帮助器方法,而不是创build“帮助器”文件中的“正常”的方式。 那有什么优点和缺点?

当function是控制器和视图之间使用的function时, helper_method是有用的。 一个很好的例子就是current_user

如果该方法处理更多的控制器逻辑,而不是格式化,那么它属于控制器。 像current_user东西将在所有的控制器之间共享,所以它应该在ApplicationController定义。

真正的“帮手”方法处理视图和处理格式和模板逻辑的东西。 这些在控制器中是很less需要的,它们属于app / helper下的模块。 你可以在需要的时候在控制器中包含这些信息,但是最终你的控制器可以使用整个模块的视图帮助器方法。

在控制器和视图之间共享方法你有几个select: