在sinatra应用中,我们将views/layout.erb
作为顶部布局。但有些页面只会为某个频道共享一个共同的外观,但也需要views/layout.erb
中的全局共享部分。有没有办法定义使用views/layout.erb
作为父布局的嵌套布局?
答案 0 :(得分:1)
最简单的方法是让特定布局还包括全局布局,并将该特定布局设置为您需要的路径的默认布局。
在specific.erb
中<%= erb :layout %> # if you are using Sinatra 1.1 and up
<%= erb :layout, :layout => false %> # if you are using Sinatra prior to 1.1
使用前置过滤器可以在一个位置设置,如果可能的话。
before '/special' do
@default_layout = :specific
end
否则,只需在路线中使用相同的行@default_layout = :specific
。