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