如何验证文本不是在Rails的空白(How to validate text isn't b

2019-07-21 21:14发布

如果我做

  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位)

Answer 1:

Rails添加了方便的方法blank? 其中所描述的检查错误,零和空字符串在这里 。
轨道还增加了方便的验证allow_blank: false

所以你的情况应该是:

validates :body, presence: true, allow_blank: false


编辑(上述原来的答案):

正如下面的回答说, allow_blank: false不需要因为这是默认的行为presence: true



Answer 2:

presence: true已经是按照不http://guides.rubyonrails.org/active_record_validations.html#presence

这帮助验证指定的属性不是空的。 它采用了空白? 检查方法,如果值是零或一个空字符串,即,一个字符串,它或是空的或是由空白的。



Answer 3:

如果你尝试添加这样的事情:

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

笔记:

  • validates_format_of让您与正则表达式验证
  • [[:graph:]]让你检查可打印字符的字符串( 请参见“字符类” )


文章来源: How to validate text isn't blank in Rails