obj = {
id: 1
models: [
{
id: 1,
parent_id: nil
},
{
id: 2,
parent_id: 1
},
{
id: 3,
parent_id: 1
},
{
id: 4,
parent_id: nil
},
{
id: 5,
parent_id: 4
},
{
id: 6,
parent_id: 4
}
]
}praent_id это идентификатор того же моделя у которых оно nil.dupnew_obj = obj.dup
new_obj.save!
obj.models.each do |m|
new_obj.models << m.dup
endparent_id остаеться прежним.[
{
id: 123,
parent_id: nil
},
{
id: 456,
parent_id: 123
}
][
{
id: 457,
parent_id: nil
},
{
id: 458,
parent_id: 123
}
][
{
id: 457,
parent_id: nil
},
{
id: 458,
parent_id: 457
}
]parent_id для моделей ?
new_obj = {id: new_id, models: []}
prev_model = nil
obj[:models].each do |m|
new_model = m.dup
new_model[:parent_id] = prev_model[:id] unless prev_model.nil?
new_obj[:models] << new_model
prev_model = new_model
end