另一个“为什么会那样”的问题:我注意到私有助手方法仍然可以在视图中访问。为什么?有没有办法防止这种情况(例如,当只有从另一个帮助者中调用辅助方法时)?
答案 0 :(得分:23)
帮助者modules that get mixed in的观点。这意味着帮助程序中的公共,受保护和私有方法在视图上变为公共,受保护和私有方法。
我认为你实际上不能从视图中隐藏辅助方法。你需要做一些事情,比如你有一个helper类,你可以在helper中实例化,然后将调用委托给它 - 听起来它可能会变得很乱。 :)
答案 1 :(得分:0)
帮助程序基本上是一小段代码,可以在您的视图中调用以帮助保持代码干净 - 即您经常重复的任何代码很可能会被转移到帮助程序中。
使用帮助程序很简单,每个控制器都有自己的帮助程序文件,或者如果它将在整个应用程序中使用,您可以在应用程序帮助程序文件中编写帮助程序。
例如- 请参阅http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails