【发布时间】:2017-07-11 11:21:03
【问题描述】:
我正在使用 Ruby on Rails 5。我的模型中有以下代码...
class User < ActiveRecord::Base
...
attr_accessor :dob_string
def dob_string
@dob_string || (self.dob ? self.dob.strftime('%m/%d/%Y') : "")
end
def dob_string=(dob_s)
date = dob_s && !dob_s.empty? ? Date.strptime(dob_s, '%m/%d/%Y') : nil
self.dob = date
rescue ArgumentError
errors.add(:dob, 'The birth date is not in the correct format (MM/DD/YYYY)')
@dob_string = dob_s
end
尽管有我的指示,但有时用户会以 MM-DD-YYYY 的形式输入日期。所以我想做的是让我的模型接受两种格式,MM/DD/YYYY 或 MM-DD-YYYY,但不能混合,也就是说 MM/DD-YYYY 应该仍然是非法的。如何修改我的模型以使其可以接受任何一种格式?
【问题讨论】:
-
请更新您的帖子,因为有太多的拼写错误,甚至编辑选项都对我们禁用:-)
标签: date model format ruby-on-rails-5