Haml在布局中渲染多个部分

ast*_*nic 6 html haml partials partial ruby-on-rails-3

如何正确缩进代码?

应用程序/视图/布局/ shared.html.haml:

= render :partial => "shared/head"
= yield
= render :partial => "shared/footer"
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _head.html.haml:

!!!XML
!!!1.1
%html{"xml:lang" => "pl", :xmlns => "http://www.w3.org/1999/xhtml"}
  %head
    %title
      some title
  %body
    .container
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ index.html.haml:

%p
  Hello World!
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _footer.html.haml:

.footer
  Some copyright text
Run Code Online (Sandbox Code Playgroud)

呈现的HTML输出:

<!DOCTYPE html> 
<html xml:lang='pl' xmlns='http://www.w3.org/1999/xhtml'> 
  <head> 
    <title> 
      some title
    </title> 
  </head> 
  <body> 
    <div class='container'></div> 
  </body> 
</html> 
<p> 
  Hello World!
</p> 
<div id='footer'> 
 Some copyright text
</div> 
Run Code Online (Sandbox Code Playgroud)

KAR*_*ván 5

您应该使用app/views/layout它和yield实际内容:

更新

app/views/layout/shared.html.haml:

!!! 1.1
%html
  = render "shared/head"
  %body
    .container
      = yield
  = render "shared/foot"
Run Code Online (Sandbox Code Playgroud)