【发布时间】:2014-01-24 23:40:10
【问题描述】:
我遇到了日期格式问题。我有一个时间选择器,它的日期格式很时髦(嗯,实际上这是一种很好的格式,但对计算机来说不是)。我正在尝试让Chronic 解析日期以便正确保存。
起初,我在控制器的创建动作中做:
params[:event][:start] = Chronic.parse(params[:event][:start])
但是,如果验证失败,它会将解析后的值发送回视图,然后我的 datetimepicker 全部搞砸了。
所以,我想……回调?在我的模型中,我添加了:
private
def date_change
self.start = Chronic.parse(self.start)
end
我尝试了before_save、before_validation、after_validation...,但似乎没有正确格式化该日期。
就目前而言,我不断收到ArgumentError in EventsController#create - Argument out of range。我认为这是因为数据库需要一个格式正确的日期时间对象。
知道如何实现我的目标,即不更改params,但仍然能够保存格式正确的对象吗?
【问题讨论】:
-
eonasdan.github.io/bootstrap-datetimepicker/#example5 - 它可以按我的意愿显示,但它会完全按照显示的方式发送到控制器。这就是我使用 Chronic 来解析数据并获得真正的日期时间对象。我不知道还能怎么做?
标签: ruby-on-rails ruby activerecord