2014-09-25 3 views
7

У меня есть этот код в application controller:Как мне получить метод rescue_from ActiveSupport?

# 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| 
... 

И I я получаю: undefined method 'rescue_from' for ExceptionMailer:Module

Я googled 'как включить rescue_from в модуль?' - и я все еще немного потерял.

+0

Эта ссылка может помочь вам. http://apidock.com/rails/ActiveSupport/Rescuable/ClassMethods/rescue_from – Joel

+0

Думаю, я нашел решение, которое «расширяет ActiveSupport :: Concern» и использует блок «включено do». Rails - это зависимость от моего драгоценного камня. В настоящее время мне не нужно ничего требовать. –

ответ

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

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

end 
Смежные вопросы