#ruby-on-rails #activerecord
#ruby-on-rails #activerecord
Вопрос:
У меня есть таблица с вызываемым полем time_start
. Пример:
t.time :time_start
Когда я пытаюсь сохранить атрибут, он сохраняет его как хэш-строку. Пример:
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}"
Я не могу понять, почему атрибут сохраняет строку вместо синтаксического анализа во времени obj. Я даже пробовал rake db:rollback VERSION=123456546
перенос непосредственно перед ним, но он все равно сохраняет значение в виде строки после rake db:migrate
. Мне не разрешено удалять таблицу.
Комментарии:
1. Какую версию Rails и базу данных вы используете?
2.
Rails 4.2.1
иpostgres (PostgreSQL) 9.4.9
3. Ничего особенного. Можете ли вы также опубликовать свою модель и asignment?
Ответ №1:
Оглядываясь назад на коммиты, младший разработчик изначально назначил time_start
поле как string
тип данных в таблице B
. Решение состояло в том, чтобы захватить номер версии предыдущей миграции (таблицы A
) и rake db:migrate VERSION=213412341234
затем запустить rake db:migrate
. Теперь оно сохраняется правильно.