【发布时间】:2013-06-17 10:46:12
【问题描述】:
tl;dr:在 Sinatra 中是否有一种简洁的嵌套布局方式?
对于我网站上的所有页面,我有一个通用的 layout.erb,它呈现页眉、页脚和其他一些位。
对于这些页面的一个子集,我想使用一个内部布局,除了那些常见的位之外,它还呈现一个左侧菜单。
全局
erb :pageTemplate 执行 layout.erb,其中yield 执行 pageTemplate
在子集中
erb :pageTemplate 执行 layout.erb,其中yield 执行 specificLayout.erb,其中yield 执行 pageTemplate。
有意义吗?
我对单独的类、before 语句和任何其他红宝石魔法持开放态度。我不是在寻找添加页眉/页脚部分并将它们包含在每个布局中。
【问题讨论】:
-
为什么不直接传入一个有条件地包含左侧菜单的配置标志呢?我认为通常宁愿选择愚蠢的观点,而不是从控制器那里窃取控制权。
-
嘿@jacobangel!我想我最终会结合配置标志和部分来获得结果。最终,会有几个子集,每个子集都有自己的左侧菜单,所以我不想让主布局过于混乱。如果一个基本控制器可以有一个基本布局,那将是非常酷的,并且所有继承控制器都可以有它们的布局并从基本控制器继承。 npd,如果我想不出来的话。