Mongoid:将“asdf”设置为日期字段的值,它将自动替换为“1970-01-01 00:00:00 UTC”

时间:2013-02-05 17:08:34

标签: ruby-on-rails validation date mongoid

我注意到,当我将"asdf"设置为Mongoid日期字段时,在任何验证发生之前,它会自动替换为1970-01-01 00:00:00 UTC !因此无法检查输入的格式是否正确,因为当输入的格式不正确时,Mongoid会自动将其替换为1970-01-01 00:00:00 UTC

这是一个已知问题吗?我现在很着急,如果你需要更多代码示例,我明天会提供。

谢谢!

1 个答案:

答案 0 :(得分:2)

此处描述了此问题:https://github.com/mongoid/mongoid/issues/2950

这里有一个解决方案:https://github.com/mongoid/mongoid/pull/2465

例如,如果日期字段的名称为“startdate”,则可以添加以下方法进行验证:

validate :startdate_valid_format

def startdate_valid_format
  begin
    Date.parse(startdate_before_type_cast)
  rescue
    errors.add(:startdate, "is formatted incorrectly")
  end
end