Я пишу приложение на Rails, которое хочу высушить чуть-чуть, и вместо того, чтобы вызывать свой собственный класс ошибок в верхней части каждого контроллера, в котором я нуждаюсь, я поместил его внутри модуля и просто включил егоmodule.
Рабочий код (модуль):
module ApiException
class EmptyParameter < StandardError
end
end
Рабочий код (контроллер):
# include custom error exception classes
include ApiException
rescue_from EmptyParameter, :with => :param_error
# rescure record_not_found with a custom XML response
rescue_from ActiveRecord::RecordNotFound, :with => :active_record_error
def param_error(e)
render :xml => "<error>Malformed URL. Exception: #{e.message}</error>"
end
def active_record_error(e)
render :xml => "<error>No records found. Exception: #{e.message}</error>"
end
Вот мой вопрос с использованием команды :with
,Как бы я вызвал метод внутри моего пользовательского модуля?
Примерно так: rescue_from EmptyParameter, :with => :EmptParameter.custom_class