例如,当我输入11q而不是11时,我没有收到任何错误,表单正在保存,好像什么都没发生一样。不幸的是,Rails认为11q实际上是零。
这是我目前的验证线:
validates :order_retain_days, numericality: {in: 1..999, only_integer: true, message: 'retain value must be an integer between 1 and 999'}, allow_blank: true
db / schema.rb的片段
create_table "order_details", force: true do |t|
t.integer "order_retain_days"
end
如果关闭Javascript,如何验证它?我需要允许空白字段或将值设置在数值范围内。
答案 0 :(得分:1)
您可以创建自己的自定义验证:
validate :presence_and_numericality_of_order_retain_days
def presence_and_numericality_of_order_retain_day
if self.order_retain_days && !self.order_retain_days=~ /insert your regex here/
errors.add(order_retain_dats, 'retain value must be an integer between 1 and 999')
end
end