我有一个Rails应用程序,我使用Mongoid驱动程序映射到我的Mongodb数据库。如果他们不愿意,我想允许用户不指定他们的出生日期。如果他们确实指定了我希望验证适用年份的日期。
我的模型中有以下代码:
field :date_of_birth, type: Date
validates_date :date_of_birth, :before => lambda { 6.years.ago }, :before_message => 'must be at least 6 years old',
:on_or_after => lambda { 70.years.ago }, :on_or_after_message => 'please enter a valid date of birth'
如何允许用户保存通过验证并保存到数据库的空白日期。当我使用当前代码传递空白日期时,我收到以下错误:
缺少出生日期翻译:attributes.date_of_birth.invalid_date
答案 0 :(得分:3)
像这样:
validates_date :date_of_birth,
:unless => 'date_of_birth.blank?',
:before => lambda { 6.years.ago },
:before_message => 'must be at least 6 years old',
:on_or_after => lambda { 70.years.ago },
:on_or_after_message => 'please enter a valid date of birth'
你可能不应该像这样阻止70岁以上的人:)