首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql2::Error:错误的日期值:‘- !ruby/hash:ActiveSupport::HashWithIndifferentAccess

问Mysql2::Error:错误的日期值:‘- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
EN

Stack Overflow用户
提问于 2013-04-19 00:02:08
回答 2查看 889关注 0票数 1

我从sqllite迁移到mysql (从一开始就用mysql重新创建了相同的工作区)。没有进行任何迁移)。

代码在sqllite上运行得很好,但在mysql上就出错了。这是我的database.yml的样子:

代码语言:javascript
复制
development:
  adapter: mysql2
  database: dev
  username: root
  password: 
  host: localhost
  pool: 5

我的代码通过在视图中选择日期来接受日期:

代码语言:javascript
复制
<%= date_select(:dob, NIL, :use_short_month => true, :start_year => Time.now.year - 100,
                       :end_year => Time.now.year, :order => [:day, :month, :year]) %>

该模型如下所示:

代码语言:javascript
复制
t.string   "firstName"
t.string   "lastName"
t.string   "Email"
t.string   "password"
t.date     "dob"

但是在控制器中通过以下代码插入失败:

代码语言:javascript
复制
@user.dob = params[:dob]

这是我得到的错误:

代码语言:javascript
复制
Mysql2::Error: Incorrect date value: '--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
(1i): '2013'
(2i): '4'
(3i): '18'
' for column 'dob' at row 1: INSERT INTO `users` (`Email`, `created_at`, `dob`, `firstName`, `lastName`, `password`, `personalEmail`, `updated_at`) VALUES ('abc@xyz.com', '2013-04-18 15:46:26', '--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\n(1i): \'2013\'\n(2i): \'4\'\n(3i): \'18\'\n', 'ABC', 'XYZ', 22, NULL, 'ab4d8d2a5f480a137067da17100271cd176607a1', '2013-04-18 15:46:26')

我在谷歌上搜索了很长时间,但找不到任何与此相关的信息。感谢在这方面的任何线索或帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-19 00:09:58

问题是多参数的事情。rails date_select助手生成3个下拉列表,这些下拉列表将3个不同的参数传递给你的控制器。如果您在控制器中使用质量赋值,rails会神奇地将这3个值转换为1个日期值。这篇(相当老的)博客文章展示了一种不需要大量分配的方法:http://www.springenwerk.com/2008/05/set-date-attribute-from-dateselect.html,但是,这篇文章太旧了,可以(!)现在是更好的方式了

票数 1
EN

Stack Overflow用户

发布于 2013-04-19 00:07:16

我清楚的是,对于mysql数据库,dat对象的格式不正确。试试像这样的东西

代码语言:javascript
复制
@user.dob = params[:dob].to_date

尝试以不同的方式设置date对象的格式,看看效果如何。它也可能有助于打开rails console并尝试手动解决问题。让我知道这是怎么回事。

-Brian

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16087802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档