質問
私は小さなシナトラベースのアプリを書いていますが、各ビューがさまざまなアイテムをレイアウトに挿入できるようにしたいと考えています。たとえば title
または、追加のCSS/JavaScript参照 head
.
現在、私のレイアウト(ERB)はこのように見えます(簡素化):
<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>
タイトルとCSS/JS参照をハードコード化するのではなく、これらの線に沿って何かを達成したいと思います。
<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>
各ビュー内からブロックのコンテンツを定義できます。
これは可能ですか、もしそうなら、私はそれをどのようにやりますか?
解決
私は最近Railscampでこの問題に立ち向かいましたが、幸運なことに、Tim Lucasは彼がフォークして電話をかけたものを私に向けることができました Sinatra-Content-for. 。これはあなたが必要とするものをカバーします。
他のヒント
これは、特にHamlではなくERBテンプレートを使用している場合、SinatraのRailsスタイルの「Content_for」機能にとって最も堅牢なソリューションであることがわかりました。
Rubyファイルで@Stylesheetを使用することができます
所属していません StackOverflow