作为一个有点初学者的程序员,这个问题多年来一直困扰着我。我有一个jquery日期时间选择器,填写表单字段,日期格式为MM/DD/YYYY
又名06/27/2015
。数据库似乎不会保存日期,除非它以YYYY/MM/DD
格式提供。但是,尽管我的数据库感觉如此,我喜欢这种格式,因为用户知道如何阅读它。
所以当我的控制器出现时,我的格式错误。在保存之前我可以使用strftime编辑日期。但是我在某种程度上是懒惰的,因为仍然希望使用强参数来创建我的条目。
def create
Statistic.create(statistic_params)
end
def statistic_params
params.require(:statistic).permit(:entry_date)
end
调整日期格式的最佳方法是什么,以便数据库识别它并让用户满意?
答案 0 :(得分:1)
在统计模型中,您可以使用before_save
方法更改entry_date
属性,这样可以在保存到数据库之前更改属性,这样您就不必担心强参数。
class Statistic < ActiveRecord::Base
before_validation :set_entry_date
def set_enty_date
self.entry_date = DateTime.strptime(self.entry_date, "%m/%d/%Y").strftime("%Y/%m/%d")
end
end