그래서 제가 알고 있는데 몇 가지 다른 방법을 알고 난은 다양한 기준에 대한 다양한 방법의 장점과 단점을 살펴볼 수 :긴 전무 안전한 방법 체인
- 가독성
- 성능을 디버깅
- 용이성
- OO 원칙 (낮은 결합 높은 응집력)
명시하여 & & 조작 체인 객체 클래스 패치
person && person.pet && person.pet.name && person.pet.name.upcase
원숭이 사용
person.pet.name.upcase rescue nil
닐 구출 사용 활성화 지원
person.try(:pet).try(:name).try(:upcase)
의 시도에있어서, 원래의 요지
위한 https://gist.github.com/thegrubbsian/3499234 참조(3210)는 코드를 호출하기 전에 대신 데이터의 유효성을 검사, 안전 코드 전무하지 마십시오
#not a good implementation by any means
def person_has_pet_with_name? person
begin
return true if !person.pet.name.nil?
rescue
return false
end
end
person.pet.name.upcase if person_has_pet_with_name?(person)
내 대답이 어떤 식 으로든 도움이 되었습니까? –
질문에 답변 한 경우 답변을 질문으로 표시하십시오. –