有没有办法让模板继承另一个模板?我没有使用Rails。
答案 0 :(得分:6)
我也非常喜欢django模板继承,但它至少不适用于sinatra。
sinatra book说明了如何使用layout.erb
定义标准页面布局:
您只需要使用以下内容定义views/layout.erb
文件:
<html>
<head>..</head>
<body>
<%= yield %>
</body>
</html>
然后使用erb :index
调用您的erb模板。 Sinatra将渲染两个模板,并在layout.erb渲染的结果中包含索引模板的内容。
答案 1 :(得分:5)
您要找的是partials和layouts。您可以将布局定义为具有全局设计内容的页面容器(您的CSS和javascript包含,页眉和页脚等。在此视图中,您可以yield
到另一个模板,该模板可以呈现{ {1}}。
答案 2 :(得分:2)
不,你不能继承一个erb模板 - 它不是一个类。它只是一个文件。
编辑:
根据@ Dan的评论,我看了一下Django模板继承,看起来与Rails content_for
非常相似。但是我不知道如何在Rails之外使用它。在第3.2和3.3点以及here看一下here。
答案 3 :(得分:0)
现在有框架Rango,第一个带有模板继承的Ruby框架,以及从中提取的框架无关的template inheritance gem。