我需要在我的rails应用中验证名为student_id
的字段。
之前的要求是: 该字段是必填字段,将由14个纯数字组成,因此我将以下代码放入学生模型文件中以满足我的需要:
validates_presence_of :studnet_id
validates_numericality_of :student_id, :only_integer => true
validates_length_of :student_id, :is => 14
如果需求更改为如果字段存在,则必须包含14个纯数字,如何实现条件验证?
答案 0 :(得分:3)
假设您的意思是“字段可能为空,但如果它有值,则应为14位”:
validates_numericality_of :student_id, :only_integer => true, :allow_blank => true
validates_length_of :student_id, :is => 14, :allow_blank => true
注意'allow_blank'。这是你的意思,还是我错误地解释了这个问题?
答案 1 :(得分:1)
听起来 validates_format_of 正是您所需要的。你可以给它一个匹配14位数字的正则表达式。
答案 2 :(得分:0)
对于rails验证,有一些默认验证选项。其中一个是:allow_nil
。:allow_nil
默认值为false
。validates_length_of
选项{{ 1}}表示属性可能为零;跳过验证。
:allow_nil