validation非模型字段

我在我的表单中添加了一个额外的字段:

 

它指定要创建的记录的副本数。

如何validation该字段的存在(或数字),因为它不是模型本身的一部分?

validates_presence_of :quantity 失败!!!

发现。 您可能希望在模型中添加虚拟属性。

 ......... attr_accessor :not_on_db ......... validates_presence_of :not_on_db, validates_length_of :not_on_db, :within => 1..5 ......... 

使用validates_numericality_ofvalidation。 默认情况下,数值validation检查浮点类型,您需要告诉您想要查看整数。 由于数量不会存储在db中,因此需要是虚拟的。

试试这个:

 attr_accessor :quantity validates_numericality_of :quantity, :only_integer => true 

validates_numericality_of默认情况下不接受nil,您不需要检查属性的存在,并且您可能想要更改视图中数量的范围,我不会在此处validation它。

您要validation范围,将其声明为模型中的常量。 在validation和视图中都参考此常量。