【发布时间】:2012-06-21 15:54:06
【问题描述】:
她是我的应用程序.rb
class ApplicationController < ActionController::Base
protect_from_forgery
rescue_from CanCan::AccessDenied do |exception|
flash[:error] = "You must first login to view this page"
session[:user_return_to] = request.url
redirect_to "/users/sign_in"
end
end
如果 AccessDenied 被抛出并且用户未登录(“工作得很好”),这会将用户重定向到登录页面,但一旦登录,如果登录但未获得 cancan 授权,则会导致重定向循环,因为登录页面只会通过 session[:user_return_to] = request.url 将它们重定向回用户。
问题是:如果用户已登录但未授权,我该如何处理此逻辑。
【问题讨论】:
-
如果您使用 devise 进行身份验证,您可以检查
current_user用户是否已登录
标签: ruby-on-rails ruby ruby-on-rails-3 devise cancan