title: Rails: Presenters, Facades, and Helpers - where does the html markup go?
body: <p>In a fairly large rails application we are running into the issue of overly complex views.  Most of the views have too much logic.</p>
  
  <p>Views have between 2 and 4 related instance variables, and make use of various logic checks and helper methods to render the view.</p>
  
  <p>Here is a fake example:</p>
  
  <pre class="lang-rb prettyprint-override"><code>&lt;% if authorized?(@user) %&gt;
    &lt;!--some html--&gt;
    &lt;% recent_projects(@projects).each do |project| %&gt;
      &lt;!-- html &amp; helper methods --&gt;
    &lt;% end %&gt;
    &lt;!--some more html--&gt;
  &lt;% else %&gt;
    &lt;!--some html &amp; helper methods--&gt;
  &lt;% end %&gt;
  </code></pre>
  
  <p><strong>Presenters, Facades, and helpers:</strong></p>
  
  <p>I've been researching using the facade and/or presenter pattern to help expose the functionality we need in the view while extracting and isolating the complexity.</p>
  
  <p><strong>My Question is:</strong></p>
  
  <p>Where does the html live? Do I make several small view partials and render them conditionally from helper methods? Do I create a presenter which has methods that handle the logic and output of the html (using content_tag, etc)? </p>
  
  <p>Any general "best practices" or guidance would be appreciated. If I haven't been clear ask questions and I will respond quickly.</p>