2009-12-05 14 views
5

Küçük bir Sinatra tabanlı uygulama yazıyorum ve her bir görünümün mizanpaja çeşitli öğeleri ekleyebilmesini isterim, örneğin veya head'daki ek CSS/javascript referansları.Birden çok blok için görünümde görünüm

anda benim düzen (erb) şöyle (basitleştirilmiş):

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

Aksine sert kodlu başlık ve CSS/JS referanslar olmasındansa ben bu satırlar boyunca bir şey elde etmek istiyorum:

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

Ayrıca bu görünümlerin içeriklerini her görünümden tanımlayabilirsiniz.

Bu mümkün mü, eğer öyleyse nasıl yapmalıyım?

cevap

4

Son zamanlarda Railscamp'da bu konuya karşı çıktım ve şans eseri Tim Lucas, bana sinatra-content-for isimli bir şatonun üzerinde çalıştığını gösterdi. Bu ihtiyacınız olanı kapsayacaktır.

+0

Harika, tam olarak aradığım şey gibi görünüyor. Teşekkürler. –

+2

Geliştirme, o zamandan beri [sinatra-content-for2] (http://rubygems.org/gems/sinatra-content-for2) projesi kapsamında devam etmiştir. – gioele

0

sadece can ruby dosyanıza @stylesheet kullanın