如何在sinatra app中不包含layout.haml

时间:2013-06-14 04:09:05

标签: ruby layout sinatra

我有一个使用haml的ruby sinatra应用程序。我将layout.haml用于所有页面的公共菜单。我们说我有login.haml,main.haml和reports.haml。我只想将layout.haml用于login.haml和main.haml。如何从reports.haml中排除layout.haml?感谢

1 个答案:

答案 0 :(得分:7)

两种(有点)方式:

全局

class MyApp < Sinatra::Base
  set :haml, :layout => false

  get '/reports' do
    haml :reports
  end
end

黑名单

如果不需要布局的路线数量较少,那么这是一种模式:

class MyApp < Sinatra::Base

  get '/reports' do
    haml :reports, :layout => false
  end

end

白名单

但是,如果不需要layout.haml文件的路由更多,则Sinatra似乎不支持覆盖set :haml, :layout => false的全局声明。我已经冒昧地为这个功能打开一个issue,因为它似乎足够合理(希望你不介意)。