2014-04-24 4 views
-1

외부에서 정의 된 여러 연결에 대해 어떻게 유효성 검사를 작성합니까? 지금까지 이런 식으로 뭔가를 작성했습니다 :레일스 : 연결 수 확인

class Document 
    validate :publication_count 

    private 

    def publication_count 
    if publications.count > template.component_count 
     errors.add(:articles, 'too many') 
    elsif publications.count < template.component_count 
     errors.add(:articles, 'not enough') 
    end 
    end 

모두 publicationstemplate이 협회입니다. 레코드가 유효해야하지만이 코드로 롤백 오류가 발생합니다.

+0

logger를'validate_tags' 메소드의 첫 번째 행에두고'publications'와'template'의 수를 출력하고 이들이 같은지 아닌지 확인하십시오. – Hardik

답변

1

코드가 올바로 표시되어 연결이 올바르게 설정 또는 저장되지 않은 것으로 보입니다. 저장하기 전에

  • publicationstemplate이 모두 Document 인스턴스에 할당됩니다 : 당신은 확인

    가나요?
  • 고유 오류와 같은 다른 이유로 롤백 오류가 발생하지 않았습니까?
  • 이것이 실제로 유효하지 않은 유효성 검사입니다.
+0

답장을 보내 주셔서 감사합니다. '너무 부족합니다'라는 오류 메시지가 표시되면서 너무 일찍 검증하려는 것으로 생각됩니다. 즉, '게시'레코드가 존재하기 전에 _ 존재합니다. '출판물'레코드가 저장되고, 즉'문서 '가 생성 된 이후에 유효성을 검사해야합니다. 이 상황에서도 가능합니까? –

+0

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. – crockeea

+0

@ 에릭 (Eric) 그의 게시물에서 질문에 대한 세 가지 잠재적 인 대답을 봅니다. – mason