在我最新的Rails应用程序中,我决定只使用辅助方法渲染部分内容。
例如,在application_helper.rb
:
def render_header
render :partial => "partials/header"
end
我正在这样做以使我的代码更加干燥,以防我重命名部分或需要添加额外的逻辑来控制显示哪个部分。
这样做的一个缺点就是它会迅速膨胀application_helper.rb,它已经非常快速地膨胀而不会这样做。
我想知道分解application_helper的最简洁方法是什么。我想我应该在lib /中创建一个application_helpers库,并为我想要的每种类型的助手包含一个不同的模块,例如partial_helper.rb。
然而,我无法让它发挥作用。我将文件放在lib / application_helpers / partial_helper.rb中,然后调用模块“ApplicationHelpers :: PartialHelper”。我认为这会被Rails自动加载,而在我的视图中我可以做“PartialHelper.render_header”,但是我得到一个错误,即该方法在PartialHelper上未定义。
另一个想法是在application_helper.rb中包含/需要帮助器,并在我的视图中正常调用它,但这也不起作用。
任何想法/解决方案?
谢谢, 扎克
答案 0 :(得分:4)
您可以在<whatever>_helper.rb
中放置任何app/helpers
文件,Rails会将其取出。例如,您可以拥有partials_helper.rb
。您不限于由控制器生成的应用程序帮助程序或帮助程序。
示例partials_helper.rb
:
module PartialsHelper
def render_header
...
end
end