我们的表结构如下是个三级分类的一张表 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]
看来我的硬编码能力真的不行啊
还好吧,这个不是重点,重点是怎么把这些数据以子类父类的关系插入数据库当中,现在已经可以读取每个 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