I feel like this could be improved (a common feeling in ruby). I'm trying to uniq an array of hashes based on value. In this example, I want the colors of the elements. Moss and snow are impostors. # remove unique array of hashes based on a hash value a = [ { :color => "blue", :name => "water" }, { :color => "red", :name => "fire" }, { :color => "white", :name => "wind" }, { :color => "green", :na