Rails(ActiveRecord)でDISTINCTする方法

findは:distinctオプションが無い。でも:selectを使ってできる。distinctの対象になるのはIDだけ(MySQL的にも)。

 RubricksUser.find(:all, :select => 'distinct *')
->SELECT distinct * FROM rubricks_users

countの場合、:distinctオプションがある。:selectを使うと対象のカラムを指定できる。

 RubricksUser.count(:distinct => true, :select => 'login_name')
->SELECT count(DISTINCT login_name) AS count_name FROM rubricks_users