tl;博士:在Sinatra有一种干净的布局方式吗?
对于我网站上的所有页面,我有一个共同的layout.erb,它呈现一个页眉,一个页脚和一些其他位.
对于这些页面的子集,我想使用内部布局,除了那些公共位之外还会呈现左侧菜单.
全球
erb:pageTemplate执行layout.erb,其中yield执行pageTemplate
在子集中
erb:pageTemplate执行layout.erb,其中yield执行specificLayout.erb,其中yield执行pageTemplate.
合理?
我愿意分开课程,在陈述之前,以及任何其他ruby魔法.我不是在寻找添加页眉/页脚部分并将它们包含在每个布局中.
解决方法
找到了!
http://www.sinatrarb.com/intro.html#Templates%20with%20%3Ccode%3Eyield%3C/code%3E%20and%20nested%20layouts
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可以包含左侧导航,而且:页面只需要担心页面内容!