我们的表结构如下是个三级分类的一张表 id,name,parent_id 目前实现如下:
data = Roo::Excelx.new("data.xlsx") data.last_row.times do |line| row = data.sheet(data.sheets.first).row(line+3) ........ end
row 类似 ["家用电器", nil, nil, nil, nil] 看来我的硬编码能力真的不行啊
不知道楼主所说的问题是什么?
像这种我一般复制黏贴到控制台去处理
csv 多好用
就是把这种多级的数据读取到类别表中
还好吧,这个不是重点,重点是怎么把这些数据以子类父类的关系插入数据库当中,现在已经可以读取每个 row 了,就是不知道接下来改怎么办......
子类父类?你说的是大家点小家电都属于 家用电器是么
是的,家用电器 <--- 大家电 <--- 平板电脑 然后用 parent_id 区分 parent_id 等于 0 的属于一级 (家用电器,),然后后续依次 parent_id 等于 1 的都是 id 等于 1 的子类,依次分三级
哈希可以帮你解决。。
搞定了,但是感觉很低级 (求优化)
data = Roo::Excelx.new("data.xlsx") data.last_row.times do |line| row = data.sheet(data.sheets.first).row(line) if row[0].present? @p = Shop::Category.create(name: row[0], parent_id: 0) end if row[1].present? @m = Shop::Category.create(name: row[1], parent_id: @p.id) end if row[2].present? Shop::Category.create(name: row[2], parent_id: @m.id) end end
怎么调试呢?感觉这个业务相对来说比较复杂啊
是的,如果能将数据转换成 hash 确实一目了然