distinctメソッドの返り値はActiveRecord::Relationオブジェクト
コンソール/catsテーブルの一意のspecies列を取得する
cats_species = Cat.select(:species).distinct
SELECT DISTINCT `cats`.`species` FROM `cats`
user_ids = UserCheckin.pluck(:user_id).uniq
uniqメソッドとは?distinctとの違い
uniqメソッドとは、Railsで取得した重複レコードを1つにまとめるためのメソッドです。
uniqメソッドを実行すると、Railsは内部的にSQLのDISTINCTを実行します。
その他に、uniqメソッドとまったく同じ働きをするdistinctメソッドも存在します。
両者の違いは、
uniqメソッド | Rails5以降で非推奨(または使えなくなる) |
---|---|
distinctメソッド | Rails5以降で正式メソッド |