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?谢谢
两种(有点)方式:
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.我冒昧地为这个功能开辟了一个问题,因为它似乎足够合理(希望你不介意).