ruby-on-rails ruby ruby-on-rails-3 devise cancan

ruby on rails - RoR | Diseñar un bucle de redireccionamiento porque cancan autorizar



ruby-on-rails ruby-on-rails-3 (1)

Añadí una pequeña condición para que esto funcione.

class ApplicationController < ActionController::Base protect_from_forgery #Redirects to login for secure resources rescue_from CanCan::AccessDenied do |exception| if user_signed_in? flash[:error] = "Not authorized to view this page" session[:user_return_to] = nil redirect_to root_url else flash[:error] = "You must first login to view this page" session[:user_return_to] = request.url redirect_to "/users/sign_in" end end end

Ella es mi aplicación.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

Esto redireccionará el uso a la página de inicio de sesión si AccessDenied es throw y el usuario no ha iniciado sesión ("funciona bien"), pero una vez que haya iniciado sesión causará un bucle de redirección si está conectado pero no autorizado por cancan desde la página de inicio de sesión. simplemente los redireccionará al usuario de vuelta a través de la sesión [: user_return_to] = request.url.

La pregunta es: ¿cómo manejo esta lógica si el usuario está conectado pero no autorizado?