2013-03-18 2 views
17

나는 여전히 spaces/r 또는 /n를 포함하는 텍스트를 가질 가능성이 레일에서 비어 있지

validates :body, :presence => true, :length => {:maximum => 30000, :message => ' is a bit long...'} 
    validates :body, :length => {:minimum => 10, :message => ' is a bit short...'} 

할 경우 - 비 눈에 보이는 문자를, 어떤 텍스트 ISN 동안 '정의에 의해 t의 빈, 그것을보고 비어 그것을

내가 텍스트가 위에 나열된 최소 및 최대 길이를 가지고도 볼 수 있음을 확인할 수있는 방법

(안 10 대)

+0

다른 [질문/답변] (http://stackoverflow.com/questions)에서 제안한 것과 같은 단어가 아닌 숫자가 아닌 특수 문자를 검사 할 때 항상 regex를 사용해 볼 수 있습니다./7680771/rails-custom-validation-on-a-regex). – summea

+0

이 [질문/답변] (http://stackoverflow.com/questions/6765020/regex-to-validate-string-having-only-characters-not-special-characters-blank)을 살펴보십시오. – summea

답변

43

레일에 대한 문자열을 확인할 수 있습니다 정규식으로 검증 할 수는 확인하는 편리한 방법 blank? 추가 here과 같이 false, nil 및 empty 문자열에 대해 설명합니다.
레일에는 편리한 유효성 검사기 allow_blank: false도 추가되었습니다.

그래서 귀하의 경우는해야한다 :

validates :body, presence: true, allow_blank: false


편집 (위의 원래 답) :

아래의 대답에 명시된 바와 같이

, allow_blank: false는 것과 필요하지 않은 기본이다 동작은 presence: true입니다.

+6

'allow_blank : false' 설정은'validates presence : true'가 이미 원하는 것을 수행하기 때문에 불필요합니다. 하단의 정답에 유의하십시오. http://stackoverflow.com/a/24832913/273715 – jottr

5

당신은 무엇을 추가하려고하면 이런 식으로 :

validates_format_of :body, :with => /\A[[:graph:]]\Z/i 

주 :

24

presence: true 이미 http://guides.rubyonrails.org/active_record_validations.html#presence

에 따라이 헬퍼는 지정된 속성이 비어 있지 않은 것을 유효성을 검사한다. 그것은 공백을 사용합니까? 메서드를 사용하여 값이 nil이거나 빈 문자열, 즉 비어 있거나 공백으로 구성된 문자열인지 확인합니다.

+0

Rails 3과 동일합니다. http://guides.rubyonrails.org/v2.3.11/activerecord_validations_callbacks.html# validates-presence-of – jottr

+1

이것은 올바른 대답입니다 ... 감사합니다! – gfd

관련 문제