複数のカラムの値が重複するオブジェクトのIDを取得する
複数カラムの値が重複してるオブジェクトの情報を取るために
posts = Post.select(:title, :user_id, :date).group(:title, :user_id, :date).having("count(*) > 1").all
とするとこんな感じのid
がnil
の配列が返ってくるので
:id => nil, :user_id => 1345, :title => 'foo', :date => Tue, 01 Sep 2015
posts.each do |post| duplicated_posts = Post.where(user_id: post.user_id, title: post.title, date: post.date) # なんか処理する end
な感じで適当に処理しましょう。
追記
こちらのほうがスッキリ書けますね。
posts.each do |post| duplicated_posts = Post.where(post.attributes.except('id')) # なんか処理する end