Я работаю над довольно крупным проектом в Rails, и мне нравится язык, хотя я не опытный программист.
Я столкнулся с проблемой, которую, по-видимому, не могу преодолеть.
Это бэкэнд-задача (грабли), которая читает входной файл, например:
01aaaaa
01bbbbb
02ccccc
02ddddd
Первые две цифры - это типы записей (01, 02).Первый тип записи 01 должен соответствовать первому типу записи 02.
Типы записей, которые должны быть сопоставлены, также имеют уникальный идентификатор:
(01aaaaa-key1 => 02ccccc-key1).
Мой код на данный момент таков, и он помещен в блок do транзакции, поскольку все проверки должны быть выполнены перед фиксацией:
record[:01].each_with_index do |re, i|
record_attr = {:mainrecord_id => nil,
:surname => var1,
:name => var2,
:birthdate => var3,
}
if record[:02].each_with_index do |rc, i|
record_attr = {
:country => var4
:city => var5
:street => var6
}.merge(record_attr)
end
end
full_record = Record.new(record_attr)
db.save << full_record
end
Тип записи 01правильно написано на БД;однако в моем коде дополнительные атрибуты записи [: 02] одинаковы в каждой строке.
Не могли бы вы подсказать, как сопоставить первую запись 01 с первой записью 02 (всегдав сочетании)?
Нужно ли писать дополнительный код, чтобы использовать уникальный ключ, или это можно сделать только с помощью итерации?
Существует ли какой-то конкретный метод для сопряжения в ruby?