我正在尝试验证 ActiveRecord 中字段的格式。我希望此字段为空,或仅包含数字序列(它包含用于数据库连接的可选端口号)。我目前正在尝试这个:
validates_format_of :port, with: /\A[0-9]*\Z/, message: 'Only numbers allowed'
但没有运气。我发现通过使用例如 {1, 6} 来添加所需的数字是可行的,但会使该字段成为必填项。
有什么建议吗?
提前谢谢了,
约瑟夫。
我正在尝试验证 ActiveRecord 中字段的格式。我希望此字段为空,或仅包含数字序列(它包含用于数据库连接的可选端口号)。我目前正在尝试这个:
validates_format_of :port, with: /\A[0-9]*\Z/, message: 'Only numbers allowed'
但没有运气。我发现通过使用例如 {1, 6} 来添加所需的数字是可行的,但会使该字段成为必填项。
有什么建议吗?
提前谢谢了,
约瑟夫。
如果您要验证以便只允许数字,那么您应该能够使用它:
validates :port, :numericality => {:only_integer => true}
您可能想尝试验证字段的数量,如下所示:
validates_numericality_of :port, :only_integer => true
:only_integer 将确保为 :port 输入的值是整数。
您也可以添加allow_blank: true
您也可以使用此语法
validates numericality: :only_integer