Search code examples
ruby-on-railsrubyarraysunique

Uniq by object attribute in Ruby


What's the most elegant way to select out objects in an array that are unique with respect to one or more attributes?

These objects are stored in ActiveRecord so using AR's methods would be fine too.


Solution

  • Use Array#uniq with a block:

    @photos = @photos.uniq { |p| p.album_id }