我写了自己的基本验证:
validate :valid_date, allow_blank: true
.....
private
def valid_date
a = geburtsdatum.split('.')
Date.valid_date?(a[2],a[1],a[0])
end
在我的帖子请求中传递给方法的参数是:
{"patient"=>{"vorname"=>"sdfss", "name"=>"sdf", "geburtsdatum"=>"45.23.1994"}}
但不知何故它不会工作我得到这个错误:
undefined method `split' for nil:NilClass
意味着我无法正确访问参数geburtsdatum
!我怎样才能解决这个问题?感谢
答案 0 :(得分:2)
您需要在验证器中添加错误:
def valid_date
a = geburtsdatum.split('.')
errors.add(:<invalid_field_name>, 'is invalid') unless Date.valid_date?(a[2],a[1],a[0])
end
简而言之, valid?
方法:1。运行验证,2。返回errors.any?