她是我的应用程序.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 将它们重定向回用户。
问题是:如果用户已登录但未授权,我该如何处理此逻辑。