2017-12-12 1 views
0

스택 레벨이 너무 깊은 오류., SystemStackError : I가 전화 번호를 확인하는 phony_rails를 사용 hashes.I'm의 배열 전화 번호를 확인할 필요가

phone_number = [{ "유형": "국제 번호", "번호": "655787"}, { "유형": "국제 번호", "번호": "65578454547"}.

번호가 유효한 전화 번호인지 확인해야합니다. 나는 아래 코드를 시도했다. 어떻게해야합니까? 내가 뭘 잘못하고 있니?

validate :phone_number 

    def phone_number 
    phone_number.each {|phone| validates_plausible_phone phone[:number]} 
    end 
+0

무엇이 오류입니까? – zachdb86

+0

우편 배달부에서 요청을 받았습니다. 오류는 다음과 같이 나타납니다 'phone_number'에있는 의 app :/models/user.rb : 23 :'phone_number '의 app/models/user.rb : 23 : 23 : in :'phone_number' 'phone_number '에 app/models/user.rb : 23 : app/models/user.rb : 23 :'phone_number'에 – Aarthi

+1

여러분의 속성의 이름 인 phone_number가 아닌 다른 검증 방법의 이름을 지정해야합니다 – zachdb86

답변

1

클래스에 이미 phone_number 메서드가 있으므로 유효성 검사 메소드의 이름을 다른 것으로 변경하기 만하면됩니다. phone_number 메서드 내부에서 phone_number을 호출 할 때 무한 루프가 예상됩니다.

validate :valid_phone_number 

def valid_phone_number 
    phone_number.each {|phone| validates_plausible_phone phone[:number]} 
end 

또한,이 phone_number가 배열 인 것은 분명하다, 그래서 phone_numbers (복수)로 이름을 변경하시기 바랍니다.

+0

그것은 실수 였고 메서드 정의에 또 다른 실수가있었습니다. validates_plausible_phone phone [: number] 대신 PhonyRails.plausible_number (phone [ "number"])를 사용해야했습니다. – Aarthi

관련 문제