Możesz to zrobić w ten sposób:
class UsersController < ApplicationController
## Exception Handling
class NotActivated < StandardError
end
rescue_from NotActivated, :with => :not_activated
def not_activated(exception)
flash[:notice] = "This user is not activated."
Event.new_event "Exception: #{exception.message}", current_user, request.remote_ip
redirect_to "/"
end
def show
raise NotActivated unless @user.is_activated?
end
end
To, co tutaj robisz, to tworzenie klasy „NotActivate”, która będzie służyć jako wyjątek. Używając podbicia, możesz zgłosić „NotActivated” jako wyjątek. rescue_from to sposób na przechwycenie wyjątku za pomocą określonej metody (w tym przypadku not_activate). Dość długi przykład, ale powinien pokazać, jak to działa.
Najlepsze życzenia,
Fabian