在一个相当大的 Rails 应用程序中,我们遇到了视图过于复杂的问题。大多数观点都有太多的逻辑。
视图有 2 到 4 个相关的实例变量,并利用各种逻辑检查和辅助方法来呈现视图。
这是一个假的例子:
<% if authorized?(@user) %>
<!--some html-->
<% recent_projects(@projects).each do |project| %>
<!-- html & helper methods -->
<% end %>
<!--some more html-->
<% else %>
<!--some html & helper methods-->
<% end %>
演示者、外观和助手:
我一直在研究使用外观和/或演示者模式来帮助在视图中展示我们需要的功能,同时提取和隔离复杂性。
我的问题是:
html在哪里?我是否制作了几个小视图部分并从辅助方法有条件地渲染它们?我是否创建了一个演示者,它具有处理 html 逻辑和输出的方法(使用 content_tag 等)?
任何一般的“最佳实践”或指导将不胜感激。如果我不清楚,请提出问题,我会尽快回复。