Rails 4.2: прочитать текстовый файл и правильно записать его в БД - PullRequest
0 голосов
/ 11 октября 2018

Я работаю над довольно крупным проектом в 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?

...