Есть массив типа
category = ["Комплектующие для ПК", "ПО", "ОС"]
Кол-во элемент может приходить разное.
По ним создаются
Category
из
.csv файла.
В данном массиве
category
нужно чтобы
category[0]
был родителем, а
category[1]
- дочерней категорией, но родителем для
category[2]
Т.е.
Комплектующие для ПК =>
ПО =>
ОС
Использую гем Ancestry
Для двух элементов работает такой код (хоть и некрасивый):
last = nil
csv.each do |row| # в row строки из таблицы
base = row[6].split('/')[0] # здесь получаю первый элемент массива
parent_category = Category.create!(name: base) if Category.where(name: base).first.nil? # Создаю базовую категорию
row[6].split('/').each do |category| # перебираю категории
if Category.where(name: category).first.nil? # если категории не существует
last = Category.create!(name: parent_category) if last == nil # то создаю базовую
# если базовая есть то создаю ей дочерние
child = Category.create!(name: category, ancestry: Category.where(name: base).first.id) if last != nil
end
end
end
Подскажите как реализовать такой код для любого кол-ва элементов?