验证整数对于数据库来说不是太大

时间:2015-01-18 23:23:36

标签: mysql ruby-on-rails activerecord

我在Mysql中有一个整数字段

t.integer  "client_number"

在我的Rails模型中,我有

validates_numericality_of :client_number

如果在client_number字段中输入非数值,则此方法可以正常工作。

但是,如果用户输入的数字太大而无法存储在整数数据库字段中,那么它会通过验证并获得

Mysql2::Error Out of range value for column 'client_number'

我希望能够从验证器中捕获错误以防止数据库异常。

有没有办法在我的应用程序中执行此操作,而不是费力地在所有整数字段上执行以下操作:

validates_numericality_of :client_number, :only_integer=> true , :less_than_or_equal_to => 2147483647 , :greater_than => 0

1 个答案:

答案 0 :(得分:1)

是:定义一个custom validator,然后在整个应用中喜欢的任何字段中使用它。