0

我通过将参数从发布的表单传递给模型来动态更新底层模型,如下所示:

@model.assign_attributes(params[:model])

我有一个日期以及格式中的其余帖子数据mm/dd/yyyydd/mm/yyyy据我所知,Ruby 似乎在解析这个日期,就好像它是 format一样。因此,例如,当我输入一个日期时4/15/2014,模型无法保存,因为该月份15不存在(我假设,实际上我只是被告知日期字段是必需的)。

如何配置 Ruby 以将我的日期解析为mm/dd/yyyy

4

1 回答 1

1

使用strptime日期方法并提供格式。

Date.strptime("4/15/2014","%m/%d/%Y")
#=> #<Date: 2014-04-15 ((2456763j,0s,0n),+0s,2299161j)>

before_update如果您希望在模型中发生转换,您可能必须指定一个回调。例如

class YourModel < ActiveRecord::Base


  before_update :format_date


  def format_date
    date_field = Date.strptime(date_field,'%m/%d/%Y')
  end
end
于 2014-04-17T16:24:07.350 回答