【问题标题】:Rails3 Date import into database in wrong formatRails3日期以错误格式导入数据库
【发布时间】:2011-10-28 19:45:58
【问题描述】:

我有一个在 ruby​​ 1.8.7 中运行的应用程序当我切换到 ruby​​ 1.9.2 时,我无法再导入到我的数据库中。日期格式似乎已更改,但我无法更改我的数据,从 mm/日/年。似乎 ruby​​ 正在使用 dd/mm/yyyy。我正在通过 csv 导入我无法更改的数据。我尝试使用 rake db:seed 运行我的原始种子文件并遇到同样的问题。我如何强制更改,以便我可以将日期导入我的应用程序。 日期格式似乎已更改,但我可以更改我的数据。来自mm/dd/yyyy

似乎 ruby​​ 正在使用dd/mm/yyyy

我正在通过 csv 导入我无法更改的数据。 我尝试使用 rake db:seed 运行我的原始种子文件,但遇到了同样的问题。

我需要强制更改,以便我可以将日期导入我的应用程序。

【问题讨论】:

  • 您可以发布您用于导入 CSV 的代码吗?
  • listit = "000076.TXT" CSV.foreach(listit, {:headers => true, :col_sep => "|", :force_quotes => true, :quote_char => "~"} ) 做 |行| @contracts = Contract.find_or_create_by_unique3(row[0]) @contracts.update_attributes({ :unique3 => row[0], :prntkey23 => row[1], :prntkey13 => row[2], :act_code => row [3], :agent => row[7], :act_booked => row[8], :contract_number => row[28], :type_of_event => row[63], :date_of_event => row[67], : first_name => row[68], :last_name => row[69] }) 结束

标签: ruby-on-rails ruby-1.9.2


【解决方案1】:

试试这样的

:date_of_event => Date.strptime(row[67], "%m/%d/%Y").to_s(:db)

.strptime 解析日期,然后.to_s(:db) 将其转换为数据库友好格式。

【讨论】:

  • 感谢您的回答,它奏效了。完美。但是现在有没有办法在 Rails 中设置它,还是我们总是必须添加 strptime。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多