【发布时间】:2014-09-23 18:56:11
【问题描述】:
我试图在我的一个模型上使用 bootstrap datepicker 设置一个日期字段。我想在用户选择日期后将日期格式显示为 MM/DD/YYYY。问题是这个日期格式对于我的数据库(YYYY/MM/DD)不正确,我需要在保存之前对其进行格式化。
在我的模型中,我创建了一个 setter 方法
def start_date=(val)
Date.strptime(val, '%Y-%m-%d')
end
当我在表单中输入日期(例如 2014 年 9 月 23 日)时,我收到一条错误消息,指出日期无效。
我做错了什么?
我的参数
{"utf8"=>"✓",
"authenticity_token"=>"***",
"event"=>{"start_date"=>"09/24/2014",
"user_id"=>"1"},
"commit"=>"Submit"
}
编辑
所以在稍微改变我的方法之后
def start_date=(val)
Date.strptime(val, "%m/%d/%Y") if val.present?
end
我不再收到“无效日期”错误。但是,现在没有日期被保存到记录中。我试过了
def start_date=(val)
@start_date = Date.strptime(val, "%m/%d/%Y") if val.present?
end
正如@animatedgif 所建议的那样,但仍然没有任何反应。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4