控制器helper_method

时间:2010-08-23 16:43:49

标签: ruby-on-rails ruby-on-rails-3

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

2 个答案:

答案 0 :(得分:82)

当功能在控制器和视图之间使用时,

helper_method非常有用。一个很好的例子就像current_user

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

真正的“帮助”方法处理视图并处理格式化和模板逻辑之类的事情。控制器中很少需要它们,它们属于app / helpers下的自己的模块。您可以在需要时将它们包含在控制器中,但最终会得到控制器可用的整个模块视图辅助方法。

答案 1 :(得分:14)

要在控制器和视图之间共享方法,您有以下几种选择: