我的一个模型中有一个交易。当出现问题时,我希望收到通知。
如果它是控制器中的交易,我只会这样做:
begin
(my transaction...)
rescue => exception
ExceptionNotifier.deliver_exception_notification(exception, self, request, data)
end
但是我想在我的模型中做类似的事情,将nils
作为self
传递而request
没有帮助。我该怎么办呢?
答案 0 :(得分:1)
在我们的项目中,我们使用它的方式不同:
对于model,我们在project_directory / config / initializers中创建一个初始化器以将其添加到 ActiveRecord的::基地。
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。
希望它有所帮助。