2014-09-25 7 views
7

Ho questo codice nella application controller:Come si richiede il metodo rescue_from di ActiveSupport?

# Method to capture and handle all exceptions 
rescue_from Exception do |ex| 
    Rails.logger.debug ex 
    do_stuff(ex) 
end 

voglio spostare questo in un modulo e poi:

class ApplicationController < ActionController::Base 
    include 'module' 
... 

In questo momento il mio modulo appare come:

# lib/exception_mailer.rb 
require 'action_mailer' 
require 'active_support' 

module ExceptionMailer 

    # Method to capture and handle all exceptions 
    rescue_from Exception do |ex| 
... 

E io sto ottenendo: undefined method 'rescue_from' for ExceptionMailer:Module

Ho cercato su Google 'Come posso includere rescue_from in un modulo?' - e sono ancora un po 'perso.

+0

Questo collegamento potrebbe aiutarti. http://apidock.com/rails/ActiveSupport/Rescuable/ClassMethods/rescue_from – Joel

+0

Penso di aver trovato una soluzione facendo 'estendere ActiveSupport :: Concern' e usando un blocco' include do'. Rails è una dipendenza della mia gemma. Al momento non ho bisogno di richiedere nulla. –

risposta

12
module Exceptionailer 
    # http://api.rubyonrails.org/classes/ActiveSupport/Concern.html 
    extend ActiveSupport::Concern 

    included do 
    rescue_from Exception do |ex| 
     ... 
    end 
    end 

end 
Problemi correlati