ruby - Sinatra 中的嵌套布局

标签 ruby sinatra erb

tl;dr:在 Sinatra 中是否有一种干净的嵌套布局方式?

对于我网站上的所有页面,我有一个通用的 layout.erb,它呈现页眉、页脚和其他一些位。

对于这些页面的一个子集,我想使用内部布局,除了那些公共(public)位之外,它还呈现左侧菜单。

全局

erb :pageTemplate执行layout.erb,其中yield执行pageTemplate

在子集中

erb :pageTemplate 执行 layout.erb,其中 yield 执行 specificLayout.erb,其中 yield 执行 pageTemplate。


有道理吗?

我对单独的类、before 语句和任何其他 ruby​​ 魔法持开放态度。我不想添加页眉/页 footer 分并将它们包含在每个布局中。

最佳答案

找到了! http://www.sinatrarb.com/intro.html#Templates%20with%20%3Ccode%3Eyield%3C/code%3E%20and%20nested%20layouts

erb :site_layout, :layout => false do
  erb :region_layout do
    erb :page
  end
end

现在,:site_layout可以包含页眉和页脚,:region_layout可以包含左侧导航,而:page只需要担心页面内容!

关于ruby - Sinatra 中的嵌套布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215993/

相关文章:

ruby - 将 SHA1 密码转换为其二进制形式

javascript - ace 编辑器 - 将模式传递给表单输入

ruby-on-rails - Friendly_id 名称未显示在 url 中

javascript - 在 ruby​​ on Rails 4 中完成项目

node.js - REST 服务的管理

java - JRuby:从 Rack 应用程序调用 Java 代码并将其保存在内存中

Ruby:Hash.new 在这里做什么

ruby-on-rails - Case 语句在 erb 部分中不起作用

ruby-on-rails - 没有 rails 的 ERB 中的 yield

ruby-on-rails - 在 Rails 中获取和设置 json 列键的好方法