0

我有一个 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

4

1 回答 1

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 岁以上的人:)

于 2013-05-24T04:44:50.273 回答