Sto scrivendo una piccola app basata su Sinatra e vorrei che ogni vista fosse in grado di inserire vari elementi nel layout, ad esempio la pagina title
o riferimenti CSS/javascript aggiuntivi nello head
.Resa in vista per più blocchi
Attualmente il mio layout (erb) si presenta così (semplificato):
<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>
Invece di avere il titolo e CSS riferimenti/JS hard coded, mi piacerebbe realizzare qualcosa in queste righe:
<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>
E essere in grado di definire il contenuto di tali blocchi all'interno di ciascuna vista.
È possibile, e se sì, come dovrei farlo?
Impressionante, sembra esattamente quello che sto cercando. Grazie. –
Da allora lo sviluppo è proseguito nell'ambito del progetto [sinatra-content-for2] (http://rubygems.org/gems/sinatra-content-for2). – gioele