2014-01-17 2 views
0

У меня есть то, что я думаю, вероятно, не очень уникальная проблема.CSV - Уникальные комбинации значений столбцов

У меня есть приложение, в котором пользователь может загрузить CSV. Я хотел бы подтвердить, что CSV против данных уже в базе данных основывается на значениях трех полей в CSV.

Представьте меня есть CSV с пятью столбцов: 1 наполнять избирательные урны фальшивых бюллетеней, вещи, 2, вещи, 3, комплектующие 4, комплектующие 5.

Мне нужно, чтобы найти все уникальные комбинации, которые существуют для Материала 1 Материала 3, и Stuff 4 в CSV, чтобы я мог запустить запрос к базе данных, чтобы увидеть, есть ли записи с теми комбинациями, которые уже существуют.

Любые мысли о том, как я могу это сделать?

Вот что у меня есть для моего объекта CSV.

CSV::HeaderConverters[:mystrip] = lambda{|s| s.strip} 
@csv = CSV.readlines(@import_file.path, header_converters: [:mystrip] , headers: true) 

ответ

0
combinations = @csv.map {|row| [row[0], row[2], row[3]]}.uniq 

combinations.each do |values| 
    if Model.where(value_1: values[0], value_2: values[1], value_3: values[2]).exists? 
    # Stuff 
    end 
end 
+0

Чтобы добавить на это, как я мог бы использовать те результаты, которые были бы массив массивов с запросом AR. Мне нужно было бы сделать что-то вроде Model.where ("value_1 (?) & Value_2 (?)" Row [0], row [2], row [3]). –

+0

Добавлен пример запроса ActiveRecord. – davogones

+0

Благодарим вас за решение. –

Смежные вопросы