开发者

Devise Layouts for SignedIn & Signed Out resources

开发者 https://www.devze.com 2023-01-21 12:15 出处:网络
My App has two UI states: - Signed IN - Signed Out I\'ve been using the following to determine which app/view/layout to use based on if the user is signed in or out with Devise:

My App has two UI states: - Signed IN - Signed Out

I've been using the following to determine which app/view/layout to use based on if the user is signed in or out with 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

The problem is once your signed in it uses the wrong layout? ideas?

I only want to use "application_unauthorized" if i开发者_开发技巧t's devise & the user is not signed in.


Actually you should use the user_signed_in? method to check if the user is signed in. I noticed that current_user? might return true even if the user is currently not signed in.

So your code would look something like this:

layout :layout_by_resource
def layout_by_resource
  if user_signed_in?
    "application"
  else
    "application_unauthorized"
  end
end


Personally I would check using if current_user? rather than devise_controller?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号