La sua è la mia application.rbRoR | Elaborare loop di reindirizzamento a causa del cancan autorizzare
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 "https://stackoverflow.com/users/sign_in"
end
end
Ciò reindirizzare l'uso alla pagina di login se l'AccessDenied è un tiro e l'utente non è connesso ("funziona bene"), ma una volta effettuato l'accesso causerà un ciclo di reindirizzamento se connesso ma non autorizzato da cancan poiché la pagina di accesso li reindirizzerà nuovamente all'utente indietro tramite la sessione [: user_return_to] = request.url.
La domanda è: come gestisco questa logica se l'utente è connesso ma non autorizzato.
se si utilizza inventare per l'autenticazione è possibile controllare 'current_user' se l'utente è loggato o meno – krichard