布莱克曼不喜欢救援



我在模型中有这个方法,里面有这个代码。它调用gem并返回我想要的对象或找不到的404资源。如果我在404上做了一个方法,那么我需要拯救它,如下所示。如果我只是使用救援门楣失败。如果我这样做,刹车手就会失灵。

find_object
return_object = Rails.cache.fetch(cache_key + '/variableInsideObject') do
GemClient.find(id).variableInsideObject
rescue HttpServices::ResourceNotFoundError
raise ApplicationController::ExternalServiceError,
"variable inside object not found for id: #{id}"
end
end

我怎样才能在不让门楣和制动员失望的情况下挽救这个错误。

Imo这是一个更像Ruby的代码实现:

def find_object
return_object = begin
Rails.cache.fetch(cache_key + '/variableInsideObject') do
GemClient.find(id).variableInsideObject
end
rescue HttpServices::ResourceNotFoundError => e
Rails.logger.error(e)
raise ApplicationController::ExternalServiceError,
"variable inside object not found for id: #{id}"
end
end

当然,如果不知道门楣或刹车工到底在抱怨什么,很难说。。。。但这应该更好。当然,您不需要使用开始-结束块,但有时linters/community会发现它更整洁。。。

最新更新