为SignedIn和Signed Out资源设计布局

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".

Wol*_*ang 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
Run Code Online (Sandbox Code Playgroud)