无法将日期格式从rails表单转换为mysql数据库

无法将日期格式从rails表单转换为mysql数据库,mysql,ruby-on-rails,ruby-on-rails-3,Mysql,Ruby On Rails,Ruby On Rails 3,我在rails 3中有一个简单的搜索表单,它有两个日期字段。我在将这些日期输入mysql数据库时遇到问题 我尝试过使用gem,在我的初始值设定项中、在config/locales/en.yml文件中以及直接在日期字段本身上指定日期格式。目前,我正在视图中设置rails approved日期格式- <%= f.text_field :depart_date, :value=> Date.today.strftime('%Y-%m-%d') %> 请注意,月和日值在insert语

我在rails 3中有一个简单的搜索表单,它有两个日期字段。我在将这些日期输入mysql数据库时遇到问题

我尝试过使用gem,在我的初始值设定项中、在config/locales/en.yml文件中以及直接在日期字段本身上指定日期格式。目前,我正在视图中设置rails approved日期格式-

<%= f.text_field :depart_date, :value=> Date.today.strftime('%Y-%m-%d') %>

请注意,月和日值在insert语句中切换。如何防止这种情况发生?

很可能您的时区设置不正确。 检查MySQL使用的时区和Rails使用的时区

您可以尝试在rails应用程序中强制设置时区,如下所示

class Application < Rails::Application
  config.time_zone = 'Eastern Time (US & Canada)'
end
类应用程序
设置虚拟属性,以便在数据库中的文本字段和日期之间进行转换。你可以跟随铁路工人让这些工作-


使用
Date.today%>
另一个选项是尝试
Date.today.strftime(“%m/%d/%Y”)
主要是让Rails为您翻译,因此,请使用最低限度的rails标准,并通过api中的示例,而不是使用我从痛苦的经历中学到的格式。使用
:value=>Date。今天
将当前日期显示为“10/31/2013”,但仍试图将其保存为
2013-31-10
。我尝试了
Date.today.strftime(“%m/%d/%Y”)
,但它也做了同样的事情。我设置了
config.time\u Zone='东部时间(美国和加拿大)
,还尝试了一次
:local
,并确认数据库实例正在使用
系统
时间。不过,它仍然没有正确地保存日期。
class Application < Rails::Application
  config.time_zone = 'Eastern Time (US & Canada)'
end