如何设置日期解释/格式?

时间:2014-04-17 16:16:58

标签: ruby ruby-on-rails-3 rails-activerecord ruby-2.1

我通过将已发布表单中的参数传递给模型来动态更新基础模型,如下所示:

@model.assign_attributes(params[:model])

我有一个日期与mm/dd/yyyy格式的其他帖子数据一起出现。据我所知,Ruby似乎正在解析这个日期,好像它的格式是dd/mm/yyyy。因此,当我输入4/15/2014的日期时,模型无法保存,因为月15不存在(我假设,实际上我只是被告知需要日期字段)

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

1 个答案:

答案 0 :(得分:1)

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

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

如果您希望在模型中进行转换,则可能必须指定类似before_update的回调。 e.g。

class YourModel < ActiveRecord::Base


  before_update :format_date


  def format_date
    date_field = Date.strptime(date_field,'%m/%d/%Y')
  end
end