我刚刚启动了一个新的 Rails (6.0.0.rc1) 应用程序并包含用于身份验证的设计。现在,Devise 附带了很多用于注册、登录等的视图。自然,我想让未经身份验证的用户访问这些视图,同时让主应用程序完全只供经过身份验证的用户使用。目前我在我的routes.rb
:
devise_scope :user do
authenticated :user do
root 'pages#home', as: :authenticated_root
end
unauthenticated do
root 'devise/sessions#new', as: :unauthenticated_root
end
end
然后在我的application.haml
我有一个简单的 if/else 语句:
!!!
%html
%head
...
%body
- if user_signed_in?
= render 'some/template'
= yield
- else
= yield
不过,这对我来说似乎是个 hack,因为无论用户是否登录,它都包含 %head 中的所有文件。
为未经身份验证的用户和登录用户定义一种布局的最佳方法是什么?