Rails 强参数日期时间选择器正确的数据库格式
Rails strong parameters datetime picker correct format for database
作为一个有点初学者的程序员,这个问题困扰了我多年。我有一个 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
调整日期格式以便数据库识别并让我的用户满意的最佳方法是什么?
在您的统计模型中,您可以使用 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
作为一个有点初学者的程序员,这个问题困扰了我多年。我有一个 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
调整日期格式以便数据库识别并让我的用户满意的最佳方法是什么?
在您的统计模型中,您可以使用 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