我在模型内部有此方法,并在其中包含了这段代码。它调用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
如何在不使lint和brakeman失败的情况下挽救该错误。
答案 0 :(得分:0)
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
当然,很难说不知道inter子或刹车员到底在抱怨什么……。但这应该更好。您当然不需要使用开始端块,但是有时候linters /社区会发现它更整洁...