Проблемы с отступами в HAML - PullRequest
4 голосов
/ 14 февраля 2010

Я довольно плохо знаком с рельсами и хамлом ... и не могу заставить это работать правильно.

У меня есть этот частичный (_head.html.haml):

!!!
%html
  %head
    %meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
    = stylesheet_link_tag 'main'
  %body

А потом в моем application.html.haml:

= render :partial => 'shared/head'
#wrapperDIV 
  = yield :layout

Но вывод не совсем то, что я намерен:

<!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>

Очевидно, <html> и <body> должны обернуть #wrapperDIV, но кажется, что частичные компоненты не помещаются в правильную иерархию.

Ответы [ 2 ]

4 голосов
/ 15 февраля 2010

Частицы неявно закрыты в конце. Они должны быть законченными подобъектами.

Вот что вы хотите:

!!!
%html
  %head
    %meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
    = stylesheet_link_tag 'main'
  %body
    #wrapperDIV 
      = yield :layout

Если вы хотите поместить ваши вызовы meta и stylesheet в частичное, вы можете сделать это, но все теги, которые вы откроете в конце документа haml, будут закрыты.

1 голос
/ 14 февраля 2010

html и body должны быть в application.html.haml

!!!
%html
  = render :partial => 'shared/head'
  %body
    #wrapperDIV 
      = yield :layout
...