Rails强参数datetime picker数据库的正确格式

时间:2015-06-28 01:37:15

标签: jquery ruby-on-rails date datetime strong-parameters

作为一个有点初学者的程序员,这个问题多年来一直困扰着我。我有一个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

调整日期格式的最佳方法是什么,以便数据库识别它并让用户满意?

1 个答案:

答案 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