我的应用有两种UI状态: - 签到 - 退出
我一直在使用以下内容根据用户是否使用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
问题是你登录后使用错误的布局?想法?
我只想使用“application_unauthorized”,如果它是设计&用户未登录。
答案 0 :(得分:5)
实际上,您应该使用user_signed_in?
方法检查用户是否已登录。我注意到即使用户当前未登录,current_user?
也可能会返回true
。
所以你的代码看起来像这样:
layout :layout_by_resource
def layout_by_resource
if user_signed_in?
"application"
else
"application_unauthorized"
end
end
答案 1 :(得分:4)
就我个人而言,我会使用if current_user?
而非devise_controller?