Ruby ActiveRecord:验证整数字段的格式

时间:2013-07-23 01:02:30

标签: ruby-on-rails activerecord

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

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

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

有什么建议吗?

非常感谢,

约瑟夫。

4 个答案:

答案 0 :(得分:5)

如果您希望验证只允许使用数字,那么您应该可以使用此功能:

validates :port, :numericality => {:only_integer => true}

答案 1 :(得分:2)

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

validates_numericality_of :port, :only_integer => true

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

答案 2 :(得分:1)

您也可以添加allow_blank: true

答案 3 :(得分:0)

您也可以使用此语法

validates numericality: :only_integer