我的 postgres 数据库表是用
t.integer :time_employed
我有这样的验证
validates :time_employed, numericality: true, allow_blank: true
我也试过
validates_numericality_of :time_employed, allow_blank: true
但他们都没有给我我想要的结果。我在控制台中做了一些测试,似乎该字段总是设置为0
or nil
。如果我输入一个字符串,它被设置为0
.
我将数据库字段更改为
t.string :time_employed
现在一切正常。这不是一个大问题,但我希望保持模式正确描述的数据。
我对数据库还不太了解,所以这让我陷入了困境。谁能解释这里发生了什么?
编辑:
问题是它允许空白条目,但如果我输入非数值,它不会抛出错误。任何东西都会被验证为好,只是没有保存到数据库中。在更改为t.string
并且没有更改验证后,它工作正常。
我也试过allow_nil: true
,但效果是一样的。