Тормоз не любит спасение - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть этот метод внутри модели с этим кодом внутри.Он вызывает гем и возвращает либо нужный мне объект, либо ресурс 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

Как я могу спасти эту ошибку, не подведя линтера и тормозника.

1 Ответ

0 голосов
/ 29 ноября 2018

Имо, это более Ruby-esque реализация этого кода:

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

Конечно, трудно сказать, не зная, на что именно жалуются линтер или тормозник .... но это должнобудь лучше.Вам, конечно, не нужно использовать начальные конечные блоки, но иногда линтеры / сообщество обнаруживают, что они более аккуратны ...

...