这是我的application.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 将其重定向回用户。
问题是:如果用户已登录但未经授权,我该如何处理此逻辑。
current_user
以确定用户是否已登录。 - krichard