Estoy escribiendo una pequeña aplicación basada en Sinatra y me gustaría que cada vista pueda insertar varios elementos en el diseño, por ejemplo, la página title
o referencias adicionales de CSS/javascript en el head
.Rendimiento para múltiples bloques
Actualmente mi diseño (erb) se parece a esto (simplificado):
<html>
<head>
<title>Hard Coded Title Here</title>
<link rel="stylesheet" ... />
</head>
<body>
<h1>Hard Coded Title Here</h1>
<div id="content">
<%= yield %>
</div>
</body>
</html>
En lugar de tener el título y las referencias CSS/JS duro codificado, me gustaría lograr algo en este sentido:
<html>
<head>
<title><%= yield :title %></title>
<link rel="stylesheet" ... />
<%= yield :more_head_refs %>
</head>
<body>
<h1><%= yield :title %></h1>
<div id="content">
<%= yield %>
</div>
</body>
</html>
Y ser capaz de definir el contenido para esos bloques desde cada vista.
¿Es esto posible y, de ser así, cómo lo haré?
Impresionante, eso parece exactamente lo que estoy buscando. Gracias. –
El desarrollo ha continuado desde entonces bajo el proyecto [sinatra-content-for2] (http://rubygems.org/gems/sinatra-content-for2). – gioele