Hers jest mój environment.rbRoR | Opracować pętlę przekierowania powodu cancan zezwolić
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
To przekierowanie wykorzystanie do strony logowania, jeśli AccessDenied jest rzut, a użytkownik nie jest zalogowany („działa dobrze”), ale po zalogowaniu się spowoduje pętlę przekierowania, jeśli jest zalogowany, ale nie autoryzowany przez cancan, ponieważ strona logowania przekieruje je z powrotem do użytkownika z powrotem za pośrednictwem sesji [: user_return_to] = request.url.
Pytanie brzmi: w jaki sposób obsłużyć tę logikę, jeśli użytkownik jest zalogowany, ale nie autoryzowany.
jeśli używasz devise do uwierzytelniania możesz sprawdzić 'current_user' jeśli użytkownik jest zalogowany lub nie – krichard