Ruby on rails 3 如何验证文本是';铁轨上没有空白
如果我这样做Ruby on rails 3 如何验证文本是';铁轨上没有空白,ruby-on-rails-3,validation,chars,Ruby On Rails 3,Validation,Chars,如果我这样做 validates :body, :presence => true, :length => {:maximum => 30000, :message => ' is a bit long...'} validates :body, :length => {:minimum => 10, :message => ' is a bit short...'} 我仍然有可能拥有一个只包含空格和/r或/n-不可见字符的文本,虽然文本在定义
validates :body, :presence => true, :length => {:maximum => 30000, :message => ' is a bit long...'}
validates :body, :length => {:minimum => 10, :message => ' is a bit short...'}
我仍然有可能拥有一个只包含空格
和/r
或/n
-不可见字符的文本,虽然文本在定义上不是空白的,但在查看时却是空白的
如何验证文本是否具有上面列出的最小长度和最大长度,以及是否可见(不是10个空格)如果您尝试添加以下内容,该怎么办:
validates_format_of :body, :with => /\A[[:graph:]]\Z/i
注:
允许您使用正则表达式进行验证验证\u格式\u的
用于检查字符串中的可打印字符()[[:graph:][]
blank?
,该方法可按说明检查假字符串、零字符串和空字符串。Rails还添加了方便的验证器
allow\u blank:false
因此,在您的情况下,应该是:
验证:主体,状态:true,允许为空:false
编辑(以上原始答案):
如下面的回答所述,
allow_blank:false
是不需要的,因为这是presence:true
的默认行为presence:true
已经根据
此帮助程序验证指定的属性是否为空。它使用空白?方法检查值是否为nil或空字符串,即空字符串或由空格组成的字符串
您可以尝试使用正则表达式来检查非单词、非数字和特殊字符,就像这篇文章中建议的那样。也可以尝试查看这一点。Rails 3也是如此:设置
allow\u blank:false
是多余的,因为验证存在性:true
已经满足了您的要求。请注意底部的正确答案: