Вы можете сделать это так:
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
// Do something that fails..
raise NotActivated unless @user.is_activated?
end
end
То, что вы здесь делаете, - это создание класса NotActivation, который будет служить исключением. Используя рейз, вы можете выбросить «Неактивированный» как исключение. rescue_from - это способ перехвата исключения с помощью указанного метода (в этом случае not_activation). Довольно длинный пример, но он должен показать вам, как это работает.
С наилучшими пожеланиями,
Fabian