我从 sqllite 迁移到 mysql(从一开始就使用 mysql 重新创建了相同的工作区。没有进行任何迁移)。
该代码在 sqllite 上运行良好,但在 mysql 上出错。这就是我的 database.yml 的样子:
development:
adapter: mysql2
database: dev
username: root
password:
host: localhost
pool: 5
我的代码通过视图中的日期选择获取日期:
<%= date_select(:dob, NIL, :use_short_month => true, :start_year => Time.now.year - 100,
:end_year => Time.now.year, :order => [:day, :month, :year]) %>
该模型如下所示:
t.string "firstName"
t.string "lastName"
t.string "Email"
t.string "password"
t.date "dob"
但是通过控制器中的以下代码插入失败:
@user.dob = params[:dob]
这是我得到的错误:
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')
我用谷歌搜索了相当大的范围,但找不到任何对此的参考。感谢任何线索或帮助。