Как я могу использовать ExceptionNotifier в моих моделях? - PullRequest
0 голосов
/ 20 мая 2010

У меня есть транзакция в одной из моих моделей. Когда что-то идет не так, я хочу получать уведомления.

Если бы это была транзакция в контроллере, я бы просто сделал:

begin
  (my transaction...)
rescue => exception
  ExceptionNotifier.deliver_exception_notification(exception, self, request, data)
end

Но я хочу сделать аналогичную вещь в моей модели, передавая nils как self и request не помогает. Что я могу с этим поделать?

1 Ответ

1 голос
/ 20 мая 2010

В нашем проекте мы используем его по-другому:

Для модели мы создаем инициализатор в project_directory / config / initializer, чтобы добавить его в ActiveRecord :: Base.

class ActiveRecord::Base
  include ExceptionNotifiable
end

При этом исключение всех моделей будет вызывать электронную почту ExceptionNotifier в соответствии с нашей конфигурацией.

Для контроллеров мы включаем его в наш ApplicationController, поэтому, если в каких-либо контроллерах есть исключение, мы получим электронное письмо.

class ApplicationController < ActionController::Base

  include ExceptionNotifiable

  .....
end

Для транзакции в контроллере я сделаю:

class MyController < ApplicationController

  .....
  def create

    MyModel.transaction do
      .....
    end

  end
end

Без спасения исключения, ExceptionNotifier будет вызываться автоматически.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...