Comparando duas matrizes de hashes usando conjuntos em Ruby

Depois disso, estou tentando comparar duas matrizes de hashes:

db = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.5}, {:foo => "bar", :stack => "overflow", :num => 0.1} ] csv = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.1}, ] 

Eu estou tentando usar um conjunto de Ruby ( db_set = Set[db] , csv_set = Set[csv] ) para comparar os dois usando - ( db_set - csv_set ) e & ( db_set & csv_set ) mas estes não parecem estar executando o comparar operações.

Eu entendi mal o uso de Set ? Como posso comparar esses dois arrays de hashes?

Não há necessidade de usar sets aqui. Parece que você será bom com os operadores do Array.

 db = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.5}, {:foo => "bar", :stack => "overflow", :num => 0.1} ] csv = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.1}, ] db - csv # => [{:foo=>"bar", :stack=>"underlow", :num=>0.5}, {:foo=>"bar", :stack=>"overflow", :num=>0.1}] db & csv # => [{:foo=>"bar", :stack=>"overflow", :num=>0.5}]