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

Jos*_*son 3 activerecord ruby-on-rails

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

validates_format_of :port, with: /\A[0-9]*\Z/, message: 'Only numbers allowed'
Run Code Online (Sandbox Code Playgroud)

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

有什么建议吗?

提前谢谢了,

约瑟夫。

Jam*_*ier 5

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

validates :port, :numericality => {:only_integer => true}
Run Code Online (Sandbox Code Playgroud)