模型中可以有例如用户模型
class User < ActiveRecord::Base
attr_accessible :number
validates_length_of :number, :is => 4
...
end
验证长度为4(1234),但有一个例外,即数字值为0? :-) 我在这里寻找文件http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html,但我不知道该怎么做?
编辑:现在我意识到也许可以使用regexp,但那不是我强大的领域:-p
答案 0 :(得分:1)
您可能希望允许长度为零以准备输入为空或空白的情况。
这种情况有内置的简单解决方案
validates :number, length { :is => 4 }, allow_blank: true
# allow_blank includes cases of both nil and blank
完成。
Doc:http://guides.rubyonrails.org/active_record_validations.html#allow-blank
答案 1 :(得分:0)
如果数字以字符串形式出现,您可以使用正则表达式验证它的格式以实现接近:
class User < ActiveRecord::Base
attr_accessible :number
validates :number, :format => { :with => /^(\d{4}|0{1})$/ }
...
end
这表示要验证数字的格式(假设它是一个字符串),这样从字符串的开头就有一个4位数的模式或一个0位,后跟字符串的结尾。