验证两个长度选项

时间:2014-10-05 08:22:25

标签: ruby-on-rails ruby-on-rails-3 validation ruby-on-rails-4

我正在验证模型字段number

我尝试实现只允许numbers8个字符长的6

但是使用此代码我收到错误:

代码:

validates :number, length: { is: [6,8] }  

错误:

ArgumentError (:is must be a nonnegative Integer or Infinity):
  app/models/patient.rb:6:in `<class:Patient>'
  app/models/patient.rb:1:in `<top (required)>'
  app/controllers/patients_controller.rb:38:in `create'

我该如何更改我的代码?感谢

1 个答案:

答案 0 :(得分:0)

自定义验证可能类似于:

class PatientValidator
  def validate(patient)
    patient.errors.add(:number, "Bad length!") unless [6, 8].include? patient.number
  end
end

然后,在患者中:

validates_with PatientValidator
相关问题