Hers は私の 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 を介して、それらをユーザーにリダイレクトするだけです。
問題は、ユーザーがログインしているが承認されていない場合、このロジックをどのように処理するかです。