에 나는 문제는 expired?
때문에 전무 값의 예외를 발생되므로 @user
아직 신용 카드가없는 경우가이잡기 오류 루비
if not @user.verified? or @user.credit_card.expired?
# do stuff
end
같은 것을 보이는 문이있다.
여분의 if 문을 사용하지 않고도 인라인 오류를 잡아낼 수있는 간결한 방법이 있습니까?
에 나는 문제는 expired?
때문에 전무 값의 예외를 발생되므로 @user
아직 신용 카드가없는 경우가이잡기 오류 루비
if not @user.verified? or @user.credit_card.expired?
# do stuff
end
같은 것을 보이는 문이있다.
여분의 if 문을 사용하지 않고도 인라인 오류를 잡아낼 수있는 간결한 방법이 있습니까?
당신이 레일을 사용하여이 예외를 방지하려면 2.3/3 내장 방법 : 코드
@user.credit_card.expired?
가 위반이라는 것
if not @user.verified? or @user.credit_card.try(:expired?)
# do stuff
end
및 gem은 객체가 null이 아닌 경우에만 보호 된 메소드 호출을 허용합니다.
if not @user.verified? or @user.credit_card.andand.expired?
# do stuff
end
당신은 gem install andand
로를 설치하고 당신은 갈 수 있어요 :
귀하의 코드는 다음과 같다.
웹 사이트 : http://andand.rubyforge.org/
tryLaw of Demeter. 해당 법률에 따라 @user
에서 원하는 방법으로 전화 할 수 있지만 @user.credit_card
은 허용되지 않는다고 명시되어 있습니다.
처음으로 null을 확인 하시겠습니까? 예 : if @ user.credit_card.exists? – zengr
먼저 우선 순위가 다르기 때문에'not' 및'or' 대신'!'및'||'를 사용하십시오. . – Nakilon
더 나은 점은'@ user.valid_card? '또는 다른 방법을 만들고 거기에있는 모든 것을 깔끔하게 캡슐화하십시오. – Peter