t.time将字段保存为ActiveRecord中的字符串

时间:2016-10-12 12:56:36

标签: ruby-on-rails activerecord

我有一个名为time_start的字段的表。示例:

t.time :time_start

当我尝试保存属性时,它将其保存为Hash-String。示例:

params{
       "time_start(1i)"=>"2016",
       "time_start(2i)"=>"10",
       "time_start(3i)"=>"12",
       "time_start(4i)"=>"23",
       "time_start(5i)"=>"59",
}

=> "{1=>2016, 2=>10, 3=>12, 4=>23, 5=>59}"

我无法弄清楚为什么该属性正在保存字符串而不是解析为Time obj。我甚至在它之前尝试了rake db:rollback VERSION=123456546迁移,但它仍然在rake db:migrate之后将值保存为字符串。我不被允许放弃。

1 个答案:

答案 0 :(得分:0)

回顾一下提交,Junior dev最初在表time_start中将string字段指定为B数据类型。解决方案是获取上一次迁移的版本号(表A),然后运行rake db:migrate VERSION=213412341234,然后运行rake db:migrate。它现在正确保存。