Rails:3.0.11
Ruby:ruby 1.9.3dev(2011-09-23リビジョン33323)[i686-linux]
これは私のカスタムレイアウトファイルです:
custom_layout.html.haml
!!!
%html{ :xmlns => "http://www.w3.org/1999/xhtml", :"xml:lang" => "en", :lang => "en" }
%head
%meta{ :"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8" }
%title= SERVICE_NAME
= render "shared/js_and_css"
%body
#wrapper.container_12
#main.grid_12
.grid_9.omega
- flash.each do |name, message|
= content_tag :p, message, :id => "flash_#{name}"
= yield
= yield :side_nav
= render "layouts/footer"
ファイルを表示:personal_information.html.erb
<div class="c1">
<div class="c2">
<div class="headings">
<h1><%= t("general.edit_personal_information")%></h1>
</div>
<div class="info-area">
<%= form_for @user, :html => { :multipart => true, :id => "user_form" } do |f| %>
<%= render :partial => "form", :object => f %>
<% end %>
</div>
</div>
</div>
<% content_for :side_nav do %>
<%= '<div class="grid_3 alpha"> </div>'.html_safe %>
<% end %>
生成されたHTML:
<body>
<div class="container_12" id="wrapper">
<div class="grid_12" id="main">
<div class="grid_9 omega">
<div class="c1">
<div class="c2">
<div class="headings">
<h1>Edit profile</h1>
</div>
<div class="info-area">
<form>
<!-- FORM ELEMENTS HERE -->
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="grid_3 alpha"> </div>
</body>
content_for:side_navを使用して設定されたコンテンツは、 div class = "grid_9 omega"の後にレンダリングされるのではなく、div id="wrapper"の後にレンダリングされます。誰かがこの奇妙な動作を引き起こしている原因を説明できますか?これを修正するにはどうすればよいですか?