Ruby on rails 使用属性api验证数值性
似乎无法处理用声明的属性Ruby on rails 使用属性api验证数值性,ruby-on-rails,ruby,validation,Ruby On Rails,Ruby,Validation,似乎无法处理用声明的属性 类测试器 包括ActiveModel::Model 包含ActiveModel::属性 属性:单位,:整数 验证:单位,数值性:真 结束 t=测试仪。新(单位:“ABC”) t、 有效吗?#=>真的 t、 errors.full_消息#=>[] 我希望t无效,因为ABC不是一个数字。如果Tester是ActiveRecord::Base,则此选项有效。(Rails 5)没有错误,因为ActiveModel::Attributes将值强制转换为定义的类型 在您的例子中,
类测试器
包括ActiveModel::Model
包含ActiveModel::属性
属性:单位,:整数
验证:单位,数值性:真
结束
t=测试仪。新(单位:“ABC”)
t、 有效吗?#=>真的
t、 errors.full_消息#=>[]
我希望
t
无效,因为ABC
不是一个数字。如果Tester是ActiveRecord::Base,则此选项有效。(Rails 5)没有错误,因为ActiveModel::Attributes
将值强制转换为定义的类型
在您的例子中,'ABC'
被强制转换为整数,'ABC'.to_i#=>0
。而0
显然是一个数字
运行示例代码后,可以通过检查
t.units
的值来检查这一点。您知道如何使类型强制和验证一起工作吗?