我在新表单中添加了一个额外字段:
<%= select_tag :quantity, options_for_select(["Select a Value"].concat((1..10).to_a)) %>
它指定要创建的记录的副本数。
如何验证该字段的存在(或数字),因为它不是模型本身的一部分?
validates_presence_of :quantity
失败!!!
答案 0 :(得分:14)
实测值。您可能希望在模型中添加虚拟属性。
.........
attr_accessor :not_on_db
.........
validates_presence_of :not_on_db,
validates_length_of :not_on_db, :within => 1..5
.........
答案 1 :(得分:1)
使用validates_numericality_of验证。默认情况下,数值验证检查浮点类型,您需要告诉您想要查看整数。由于数量不会存储在db中,因此需要是虚拟的。
试试这个:
attr_accessor :quantity
validates_numericality_of :quantity, :only_integer => true
validates_numericality_of默认情况下不接受nil,您不需要检查属性是否存在,并且您可能想要更改视图中数量的范围,我不会在此验证它。
您要验证范围,将其声明为模型中的常量。在验证和视图中都参考此常量。