我在应用程序控制器中有这个代码:
- # Method to capture and handle all exceptions
- rescue_from Exception do |ex|
- Rails.logger.debug ex
- do_stuff(ex)
- end
我想把它移到一个模块然后:
- class ApplicationController < ActionController::Base
- include 'module'
- ...
现在我的模块看起来像:
- # lib/exception_mailer.rb
- require 'action_mailer'
- require 'active_support'
- module ExceptionMailer
- # Method to capture and handle all exceptions
- rescue_from Exception do |ex|
- ...
我得到:ExceptionMailer:Module的未定义方法’rescue_from’
我用Google搜索了“我如何在模块中包含rescue_from?” – 我还有点失落.
解决方法
- module Exceptionailer
- # http://api.rubyonrails.org/classes/ActiveSupport/Concern.html
- extend ActiveSupport::Concern
- included do
- rescue_from Exception do |ex|
- ...
- end
- end
- end