Ruby on rails app signal gem在没有崩溃请求的情况下向app signal发送错误

Ruby on rails app signal gem在没有崩溃请求的情况下向app signal发送错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用appsignal gem跟踪我的应用程序中是否存在错误处理 在这种情况下,我使用法拉第调用外部API def卡车信息(请求参数) 响应=@conn.post('truck/info')do | req| 请求标题['Content-Type']='application/json' req.body=req_参数 结束 如果响应成功,则返回JSON.parse(response.body)(response) 响应\u错误(响应) 结束 def响应_成功?(响应) response.

我正在使用appsignal gem跟踪我的应用程序中是否存在错误处理

在这种情况下,我使用法拉第调用外部API

def卡车信息(请求参数)
响应=@conn.post('truck/info')do | req|
请求标题['Content-Type']='application/json'
req.body=req_参数
结束
如果响应成功,则返回JSON.parse(response.body)(response)
响应\u错误(响应)
结束
def响应_成功?(响应)
response.status==200
结束
def响应_错误(响应)
err=NctError,“代码:{response.status},响应:{response.body}”
Appsignal.set_错误(err)
引发nctror,I18n.t('error\u messages.ppob.server\u error'))
结束
我的卡车信息用于调用外部api。如果成功,我将把它解析为json。但是如果出现错误,我将调用response\u error方法解析器来创建自定义类error(nctror),并希望发送到appsignal以显示错误,而不会中断应用程序进程

但当我测试它时,它并没有发送到appsignal。如何将错误发送到appsignal,即使它不会使请求崩溃?因为我需要跟踪错误

谢谢你

你可以试试

Appsignal.send\u错误(err)
如果上述操作也不起作用,则
set_error
send_error
只能在
异常情况下工作:

def响应_错误(响应)
引发nctror,I18n.t('error\u messages.ppob.server\u error'))
救援=>e
Appsignal.send_错误(e)do|事务|
transaction.params={code:response.status,response:response.body}
结束
结束

在我打算发送appsignal消息后,我忘记了引发NctError的原因。通过翻译,应该将其作为错误消息发送给API使用者。但是,如果我真的进行了救援,它还会向我们的消费者api发送错误消息吗?
raise
just raise error,它通常不会向消费者api发送错误消息。您可以在
rescue
中发送错误消息,即
render json:{msg:I18n.t('error\u messages.ppob.server\u error')},状态:response.status
,这取决于您的代码逻辑。我的问题是,我的应用程序控制器捕捉到了错误,因此它会将响应json发送给消费者apit it's ok,很高兴知道:)