3

我正在尝试验证 ActiveRecord 中字段的格式。我希望此字段为空,或仅包含数字序列(它包含用于数据库连接的可选端口号)。我目前正在尝试这个:

validates_format_of :port, with: /\A[0-9]*\Z/, message: 'Only numbers allowed'

但没有运气。我发现通过使用例如 {1, 6} 来添加所需的数字是可行的,但会使该字段成为必填项。

有什么建议吗?

提前谢谢了,

约瑟夫。

4

4 回答 4

6

如果您要验证以便只允许数字,那么您应该能够使用它:

validates :port, :numericality => {:only_integer => true}
于 2013-07-23T01:09:16.330 回答
3

您可能想尝试验证字段的数量,如下所示:

validates_numericality_of :port, :only_integer => true

:only_integer 将确保为 :port 输入的值是整数。

于 2013-07-23T01:12:31.673 回答
1

您也可以添加allow_blank: true

于 2013-07-23T01:11:15.860 回答
0

您也可以使用此语法

validates numericality: :only_integer
于 2017-08-09T09:48:05.513 回答