6

정규식을 사용하여 필드의 유효성을 검사하고 공백 (빈 문자열을 허용)을 허용하고 싶습니다. 지금까지 내가 관리하는 유일한 것은이 같은 빈 문자열을 허용하는 정규식 작성하는 것입니다 : 이제Rails 비 필수 필드의 ActiveRecord 정규식 유효성 검사

validates :field, 
      format: { with: /\A([a-z]+|)\z/i } 

을, 이것은 적절한 방법이 될 수 없다 -이 못생긴 해킹처럼 보인다. 나는 또 다른 (적절한) 접근법이 있는지 알고 싶다.

답변

10

allow_blank이 작동해야합니다.

validates :field, 
      format: { with: /\A([a-z]+|)\z/i }, :allow_blank => true 
+0

아, 아름다워, RT (F) M 문제 였어. =) – aL3xa

0

당신은 ... 당신은 발생 '이상의 제로'를 지정하려면 '*'한정 기호를 사용할 수있는 교대가 필요하지 않습니다 (단지 (안 빈 문자열) 전무 값을 수용하기위한도 allow_nil 있습니다) . 또한, [a-z]보다는 '\ w'를 사용합니다 ... 이것은 영숫자를 잡아낼 것입니다.

validates :field, 
     format: { with: /\A(\w*)\z/i } 
+0

'[a-z]'를 예로 든 것이지만'* '를 사용하지는 않을 것입니다. ': allow_blank'는'nil'과 빈 문자열을 허용하기 때문에 완벽했습니다. – aL3xa

관련 문제