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