我正在编写一个基于 Sinatra 的小型应用程序,并希望每个视图都能够将各种项目插入到布局中,例如页面title
或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>
并且能够从每个视图中定义这些块的内容。
这可能吗,如果可以,我将如何去做?