Frage
Ich bin ziemlich neu auf Schienen und haml .. und ich kann dies nicht zur Arbeit richtig machen.
Ich habe diesen Teil (_head.html.haml):
!!!
%html
%head
%meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
= stylesheet_link_tag 'main'
%body
Und dann in meinem application.html.haml:
= render :partial => 'shared/head'
#wrapperDIV
= yield :layout
Aber der Ausgang ist nicht genau das, was ich beabsichtige:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta content='text/html; charset=iso-8859-1' http-equiv='Content-Type' />
<link href="/stylesheets/main.css?1266030236" media="screen" rel="stylesheet" type="text/css" />
</head>
<body></body>
</html>
<div id='wrapperDIV'></div>
Offensichtlich <html>
und <body>
sollten #wrapperDIV wickeln, aber es scheint, wie die partials nicht put in der richtigen Hierarchie bekommen.
Lösung
Partials werden am Ende implizit geschlossen. Sie sollen komplette Unterobjekte sein.
Hier ist, was Sie wollen:
!!!
%html
%head
%meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
= stylesheet_link_tag 'main'
%body
#wrapperDIV
= yield :layout
Wenn Sie Ihre meta
und stylesheet
Anrufe in einem Teil setzen wollen, könnten Sie das tun, aber alle Tags haben Sie am Ende eines haml Dokuments geöffnet wird geschlossen.
Andere Tipps
Die html
und body
Bedürfnisse in application.html.haml
sein
!!!
%html
= render :partial => 'shared/head'
%body
#wrapperDIV
= yield :layout