我可以继承erb模板吗?

时间:2010-02-28 10:10:44

标签: ruby inheritance sinatra erb

有没有办法让模板继承另一个模板?我没有使用Rails。

4 个答案:

答案 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)

您要找的是partialslayouts。您可以将布局定义为具有全局设计内容的页面容器(您的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。