2012-11-09 2 views
1

레일스가 다음을 건너 뜁니다. 생성시 형식 유효성 검사. 생성시에는 아무것도 받아들이지 않습니다. 그런 다음 업데이트시 : presence 및 : format이 모두 예상대로 작동합니다. 이렇게하면 어떻게 변경합니까 : allow_blank on create 및 형식을 너무 확인합니까?Rails 유효성 검사 : 형식이 건너 뜀으로 생성됨

validates :mail, :allow_blank => true, :on => :create, 
       :format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)*[a-z]{2,})$/i }, 
       :length => { :maximum => 60 }, 
       :presence => true, :on => :update 

답변

1

에 대해 별도의 validates 문을 사용하십시오 : 작성 : 업데이트 및 모든 라이프 사이클 이벤트. :on => :update 옵션을 사용하면 본질적으로 모두 :on => :create 옵션을 덮어 쓰게됩니다.

validates :mail, :format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)*[a-z]{2,})$/i }, 
       :length => { :maximum => 60 } 

validates :mail, :allow_blank => true, :on => :create, 

validates :mail, :presence => true, :on => :update 
+1

확실하지 않은 이유는 무엇입니까? : allow_blank를 자체적으로 사용하면 "적어도 하나의 유효성 검사를 제공해야합니다." 그래서 나는 : format/: 길이 그룹과 함께 넣었고 : 당신이 제시 한 것과 같이 존재감이 분리되어 모든 것이 지금 작동 중이다. – Robert

관련 문제