ruby - rails - href haml
EstructuraciĆ³n de la plantilla de diseƱo en Haml. (2)
Tengo una página web que utiliza Haml para diseños. Hay un archivo de diseño separado (layout.haml) que se usa cuando se procesa cualquier página de Haml real. El layout.haml se parece algo a
-# layout.haml
!!! XML
!!!
%html
%head
...
%body
...
#content= yield
El problema: por supuesto, esto ya está en el <body>
del documento, por lo que manipular cosas en el encabezado no es directamente posible. Por ejemplo, <title>
se cambia a través de @title
. Lo que es un problema más importante es el hecho de que cada página específica de Javascript debe cargarse en el cuerpo. Además, layout.haml ya contiene Javascript, por lo que jQuery se suele instanciar varias veces.
¿Alguna sugerencia para una mejor estructura de plantilla?
Esta solución es solo para Ruby on Rails:
Puede usar el yield(:location)
y los métodos content_for(:location)
, más información .
layout.haml
!!!
%html
%head
%title= yield(:title)
= yield(:head)
%body
= yield
ver.haml
- content_for(:title, ''My title'')
- content_for(:head) do
= javascript_include_tag :foo
%h1 My view!
Yo uso parciales:
!!!
%html
= partial(''trst_sys/shared/html-head'')
%body{:id => "srv",:''data-lang'' => current_lang}
#main.wrap
%header#header
= partial(''trst_sys/shared/header'')
%nav#menu
= partial(''trst_sys/shared/menu'')
%section#content
%article#xhr_content
= yield
%article#xhr_msg.hidden
%section#sidebar
= partial(''trst_sys/shared/sidebar'')
%section#main_footer.wrap
%footer#footer.wrap
= partial(''trst_sys/shared/footer'')