Rails 3 rescue_from,使用和使用自定义模块

时间:2010-12-20 21:01:05

标签: ruby-on-rails-3

我正在编写一个Rails应用程序,我想要干掉一点点,而不是在我需要的每个控制器的顶部调用我的自定义错误类,我把它放在一个模块中,只是包含了模块。

工作代码(模块):

module ApiException
  class EmptyParameter < StandardError
  end
end

工作代码(Controller):

# 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

1 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

rescue_from EmptyParameter do |exception|
  EmptyParameter.custom_class_method
end