ruby on rails - Nested Layout not rendering properly -
i have application.html.erb, has this:
<!-- truncated brevity --> <body> <%= content_for?(:content) ? yield(:content) : yield %> </body> then have layout family_tree.html.erb
that looks this:
<%= render template: "layouts/application" %> <main id="view"> <title>timeline!</title> <%= render partial: "tree_header" %> <% content_for :content %> <%= yield %> <% end %> </main> that partial _tree_header.html.erb looks this:
<header class="profile-header"> <div class="wrapper"> <div class="profile-author"> <h2 class="center author-name">martha doe <a class="author-description-btn" href=""><i class="icon-list-2"></i></a></h2> <h4 class="author-title">aunt <i class="author-title-circ"></i><i class="author-title-circ"></i><i class="author-title-circ"></i></h4> <!-- <div class="author-description"> <p>nullam quis risus eget urna mollis ornare vel eu leo. etiam porta sem malesuada magna mollis euismod.</p> </div> --> </div> <nav class="profile-nav center"> <ul> <li><%= link_to "timeline", timeline_path %></li> <li class="active"><a href="#">family tree</a></li> </ul> </nav> </div> </header> this how want render (this static html):
but how renders:
notice though specified render partial: "tree_header" before yield statement within content_for block, still seems rendering after yield within layouts/family_tree.html.erb.
how solve this?
edit 1
using amihule's answer have more or less solved it, seeing space between top , tree_header partial. content_for block causing space?
tl;dr: move <%= render template: "layouts/application" %> bottom of sub-layout , include else in content_for block.
<% content_for :content %> <main id="view"> <title>timeline!</title> <%= render partial: "tree_header" %> <%= yield %> </main> <% end %> <%= render template: "layouts/application" %> you want fill content :content first , render template include this. way have template set up, notice on rails console renders layouts/application before partial, this:
rendered test/foo.html.erb within layouts/family_tree rendered layouts/application.html.erb rendered test/_tree_header.html.erb see using nested layouts.



Comments
Post a Comment