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

use*_*638 4 ruby layout sinatra

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

Kas*_*yap 7

两种(有点)方式:

全球

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

  get '/reports' do
    haml :reports
  end
end
Run Code Online (Sandbox Code Playgroud)

黑名单

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

class MyApp < Sinatra::Base

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

end
Run Code Online (Sandbox Code Playgroud)

白名单

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