rails中的Helper目录

时间:2018-04-24 01:09:51

标签: ruby-on-rails helpers

所有控制器中都包含辅助目录中的文件吗?我没有找到任何关于此的好解释。我的控制器中有2个自定义目录(如管理员,普通用户)。我的帮助器上有相同的目录结构吗? Helper名称是否与控制器名称相同只是为了便于阅读?

2 个答案:

答案 0 :(得分:3)

默认情况下,app/helpers下的所有帮助文件都包含在所有控制器中。因此,如何构建helpers文件夹内的内容并不重要。如果您确实希望强制控制器仅包含匹配的帮助程序,请将配置中的config.action_controller.include_all_helpers设置为false

有关详细信息,请参阅评论部分:https://github.com/rails/rails/blob/b5db73076914e7103466bd76bec785cbcfe88875/actionpack/lib/action_controller/metal/helpers.rb

答案 1 :(得分:3)

Helper只是一个ruby模块,可供视图和控制器公开使用。如果您不希望将代码暴露给视图,则不应将代码保留在帮助程序中。

如果要对所有控制器和视图使用辅助方法。然后,您可以向应用程序助手添加方法并将其包含到应用程序控制器中。但是,如果您不想将方法公开给视图,那么您可以使用rails关注点。在其中创建一个方法并将其包含在不同的控制器中。

除了可读性之外,没有帮助者不会命名相同的名称。如果要在控制器内部使用它,仍然需要在同一个名称控制器中包含调用函数。但您仍然可以使用具有相同名称的内部视图方法。