Ви можете зробити це так:
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
Те, що ви тут робите, - це створення класу "Неактивовано", який буде винятком. Використовуючи рейз, ви можете кинути "Неактивований" як виняток. rescue_from - це спосіб вловити виняток із зазначеним методом (у цьому випадку не_активований). Досить довгий приклад, але він повинен показати вам, як це працює.
З найкращими побажаннями,
Фабіане