bga*_*oci 75 ruby validation model ruby-on-rails
我有一个我想验证的字段.我希望该字段可以留空,但如果用户输入数据,我希望它以某种格式.目前我在模型中使用以下验证,但这不允许用户将其留空:
validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5
Run Code Online (Sandbox Code Playgroud)
我如何写这个来实现我的目标?
Dig*_*oss 122
我想它可能需要这样的东西:
validates_length_of :foo, minimum: 5, maximum: 5, allow_blank: true
Run Code Online (Sandbox Code Playgroud)
更多示例:ActiveRecord :: Validations :: ClassMethods
qua*_*njn 114
您也可以使用以下格式:
validates :foo, length: {minimum: 5, maximum: 5}, allow_blank: true
Run Code Online (Sandbox Code Playgroud)
或者由于你的最小值和最大值相同,以下内容也适用:
validates :foo, length: {is: 5}, allow_blank: true
Run Code Online (Sandbox Code Playgroud)
Gar*_*eth 11
validates_length_of :phone, :in => 7..32, :allow_blank => true
Run Code Online (Sandbox Code Playgroud)
:allow_blank- 属性可能为空; 跳过验证.
或者更简洁(使用新的哈希语法),来自验证文档:
validates :foo, length: 5..5, allow_blank: true
Run Code Online (Sandbox Code Playgroud)
上限应该代表一些更有意义的东西,比如"in:5..20",但只是回答了问题.
| 归档时间: |
|
| 查看次数: |
74947 次 |
| 最近记录: |