1

sinatra-authentication期望 alayout.haml用于其预滚动的身份验证视图。

如何指定sinatra-authentication可以使用(例如auth_layout.haml)的不同布局模板,以便我可以保留layout.haml我的应用程序的视图?

我目前对此并不理想的方法是:

  • 允许sinatra-authentication使用标准layout.haml
  • std_layout.haml在应用程序的所有其他部分显式使用另一个布局文件(例如)

例如

...
erb :home_page, :layout => :std_layout
...

我更喜欢反过来:)

4

1 回答 1

0

您可以阅读Layout Engines或简单地尝试:

get '/login' do
  haml :login, layout: auth_layout
end

EDIT-1:您的评论是好的layout: auth_layout是 ruby​​ 1.9 语法:layout => auth_layout是 1.9 之前使用的语法

如果你在谈论这个 sinatra-authentication,你必须破解这个文件app.get '/login/?'关于 (Module::Helpers#use_layout?)的 方法。

EDIT-2:我想覆盖use_layout?方法会帮助你,也许像

Module Sinatra
  Module Helpers
    def use_layout?
       request.xhr? ? false : :auth_layout
    end
  end
end
于 2012-09-06T11:24:31.820 回答