CSV - 列值的唯一组合

时间:2014-01-17 21:21:07

标签: ruby-on-rails ruby csv

我认为可能不是一个非常独特的问题。

我有一个用户可以上传CSV的应用程序。我想根据CSV中三个字段的值,对数据库中已存在的数据验证CSV。

想象一下,我有一个包含五列的CSV:Stuff 1,Stuff 2,Stuff 3,Stuff 4,Stuff 5.

我需要找到CSV中存在的东西1,东西3和东西4的所有独特组合,以便我可以对数据库运行查询,以查看是否存在已存在这些组合的记录。

有关如何实现这一目标的任何想法?

以下是我的CSV对象的内容。

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

1 个答案:

答案 0 :(得分: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