如果我做
validates :body, :presence => true, :length => {:maximum => 30000, :message => ' is a bit long...'}
validates :body, :length => {:minimum => 10, :message => ' is a bit short...'}
我仍然有具有文本,其中包括只的可能性spaces
和/r
或/n
-不可见的字符,这虽然文字不为空的定义,它是空白的看它
我如何可以验证该文本有一个最小和最大长度上面列出的,也是可见的(不是10位)
Rails添加了方便的方法blank?
其中所描述的检查错误,零和空字符串在这里 。
轨道还增加了方便的验证allow_blank: false
。
所以你的情况应该是:
validates :body, presence: true, allow_blank: false
编辑(上述原来的答案):
正如下面的回答说, allow_blank: false
不需要因为这是默认的行为presence: true
。
presence: true
已经是按照不http://guides.rubyonrails.org/active_record_validations.html#presence
这帮助验证指定的属性不是空的。 它采用了空白? 检查方法,如果值是零或一个空字符串,即,一个字符串,它或是空的或是由空白的。
如果你尝试添加这样的事情:
validates_format_of :body, :with => /\A[[:graph:]]\Z/i
笔记:
-
validates_format_of
让您与正则表达式验证 -
[[:graph:]]
让你检查可打印字符的字符串( 请参见“字符类” )