Rails 모델에서 API를 호출 중이며 API가 200이 아닌 코드로 반환되면 오류가 발생합니다. 그렇지 않으면 데이터를 캐싱/지연로드하려고합니다. 이것은 내 방법입니다.Ruby에서 값을 반환하거나 조건부로 오류를 발생시키는 방법은 무엇입니까?
이 작업은 가능하지만 한 줄로 처리 할 수 있는지 궁금합니다. 나는 unless
과 결합 된 and
연산자를 사용했지만 작동하지 못했습니다.
업데이트 : 한 줄을달라고 요청했기 때문에 tokland의 대답을 받아 들였고 두 가지의 아주 좋은 해결책을 제공했습니다. 결국 나는 실제로 사용하려고합니다. 가독성을 위해 실제로 사용하려고합니다.
def data
@data ||= SNL.get_list(name)
@data.success? ? @data : (raise StandardError, @data.inspect)
end
예외가 거의 발생하지 않기 때문에 단지 @data
을 반환하는 제 3 행을 갖는 것이 싫었습니다. odiszapc의 대답은 간결하고 가독성이 가장 좋은 절충안이라고 생각합니다. 모두에게 감사드립니다.
'탭'을 사용해 보셨습니까? –