【发布时间】:2015-12-14 12:51:25
【问题描述】:
我正在创建一个 ruby on rails 应用程序。将日期导入 available_on 列时,日期未正确插入数据库。当我使用 csv 文件导入数据时,它会发生变化。
def import
require 'csv'
file = params[:file]
CSV.foreach(file.path, headers: true) do |row|
@prod = Spree::Product.new()
@prod.name = row["name"]
@prod.shipping_category_id = row["shipping_category_id"]
@prod.description = row["description"]
@prod.available_on = row["available_on"]
@prod.meta_description = row["meta_description"]
@prod.meta_keywords = row["meta_keywords"]
@prod.tax_category_id = row["tax_category_id"]
@prod.shipping_category_id = row["shipping_category_id"]
@prod.promotionable = row["promotionable"]
@prod.meta_title = row["meta_title"]
@prod.featured = row["featured"]
@prod.supplier_id = row["supplier_id"]
@prod.master.price = row["master_price"]
@prod.master.cost_price = row["cost_price"]
@prod.master.depth = row["depth"]
@prod.master.height = row["height"]
@prod.master.width = row["width"]
@prod.master.weight = row["weight"]
@prod.master.sku = row["sku"]
@prod.master.tax_category_id = row["tax_category_id"]
@prod.save!
end
end
我的数据库表是这样的:
| id | int(11)
| name | varchar(255)
| description | text
| available_on | datetime
| deleted_at | datetime
| slug | varchar(255)
| meta_description | text
| meta_keywords | varchar(255)
| tax_category_id | int(11)
| shipping_category_id | int(11)
| created_at | datetime
| updated_at | datetime
| promotionable | tinyint(1)
| meta_title | varchar(255)
| featured | tinyint(1)
| supplier_id | int(11)
我知道这是由于 available_on 的数据类型。 我在available_on中插入了日期,就像'2015-10-10'。 任何人都可以告诉如何在导入 csv 文件时从数据库中删除这种不一致
【问题讨论】:
标签: ruby-on-rails ruby csv mysql2