小编R. *_*rra的帖子

如何允许我的模型接受两种不同的日期格式?

我正在使用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
Run Code Online (Sandbox Code Playgroud)

尽管我的指示,有时用户以MM-DD-YYYY的形式输入日期.所以我想做的是允许我的模型接受两种格式,MM/DD/YYYY或MM-DD-YYYY,但不混合,即MM/DD-YYYY仍然是非法的.如何修改我的模型以便它可以接受任何一种格式?

format model date ruby-on-rails-5

6
推荐指数
1
解决办法
120
查看次数

标签 统计

date ×1

format ×1

model ×1

ruby-on-rails-5 ×1