我通过将参数从发布的表单传递到模型来动态更新底层模型,如下所示:
@model.assign_attributes(params[:model])
我有一个日期,以及其他格式为mm/dd/yyyy
的帖子数据。据我所知,Ruby似乎在解析这个日期,就好像它的格式是dd/mm/yyyy
一样。因此,例如,当我输入日期4/15/2014
时,模型无法保存,因为月份15
不存在(我假设,实际上我只是被告知需要日期字段)。
如何配置Ruby将我的日期解析为mm/dd/yyyy
?
使用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