在sinatra的嵌套布局

时间:2012-03-04 04:52:56

标签: ruby layout sinatra

在sinatra应用中,我们将views/layout.erb作为顶部布局。但有些页面只会为某个频道共享一个共同的外观,但也需要views/layout.erb中的全局共享部分。有没有办法定义使用views/layout.erb作为父布局的嵌套布局?

1 个答案:

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