AnA*_*ice 1 ruby-on-rails ruby-on-rails-3
我的应用程序有两种UI状态: - 签名IN - 签名
我一直在使用以下内容来确定使用哪个应用/视图/布局,具体取决于用户是否使用Devise登录或注销:
# Devise, way of using a different Layout for all the devise/non-signed in Views
layout :layout_by_resource
def layout_by_resource
if devise_controller?
"application_unauthorized"
else
"application"
end
end
Run Code Online (Sandbox Code Playgroud)
问题是,一旦你签名使用错误的布局?想法?
如果它的设计和用户没有登录,我只想使用"application_unauthorized".
其实你应该使用的user_signed_in?
方法来检查用户是否登录.我注意到,current_user?
可能会返回true
即使用户当前未登录.
所以你的代码看起来像这样:
layout :layout_by_resource
def layout_by_resource
if user_signed_in?
"application"
else
"application_unauthorized"
end
end
Run Code Online (Sandbox Code Playgroud)