В ruby ​​on rails есть ли способ диктовать формат полей, вставляемых в базу данных через Activerecord?

Я вставляю некоторые строки (которые выглядят как даты) в базу данных sqlite3 через ActiveRecord, и база данных изменяет поле и делает его похожим на дату. Например:

"4-2" => "2-Apr"  #Not only a date but the order has been reversed.

"6-7-12" => "7/12/2006"  #Again not only a date but the order has been changed.

Я искал рубиновую строковую функцию, которая предотвратила бы это, но ничего не смог придумать.

Кто-нибудь еще сталкивался с чем-то подобным, и знаете ли вы о каких-либо обходных путях или исправлениях.


person Mutuelinvestor    schedule 21.02.2012    source источник
comment
Является ли столбец, в котором вы храните строки, столбцом даты? sqlite попытается преобразовать любую строку, которую вы отправляете, в дату. Если вы хотите сохранить литералы, вам нужно поместить их в строковый столбец.   -  person Marc Talbot    schedule 21.02.2012
comment
Спасибо, Марк, на самом деле это строковые столбцы.   -  person Mutuelinvestor    schedule 21.02.2012


Ответы (1)


Если вы можете предсказать формат строки, используйте следующий код для синтаксического анализа строки в объект даты перед ее сохранением.

Date.strptime '6-7-12', '%m-%d-%y'
=> Thu, 07 Jun 2012
person nkm    schedule 21.02.2012
comment
Но я не ищу объекты даты. Я хочу строку. Возможно, мне нужно создать собственный формат. - person Mutuelinvestor; 21.02.2012