TL;DR ポリモーフィックにしてるカラムを _id と _type に分けて、 _id だけを validates_uniqueness_of の対象にして、 _type は scope 側に本来対象としたいカラムと一緒に入れてしまう。 例 一人のユーザーがたくさんの車を持てるし、一つの車をたくさんのユーザーで共有することもできるけど、一つのユーザーに同じ車を何個も追加できてしまっては困る、というかそれは単なるバグだから防ぎたいという場合。 class UserCar < ActiveRecord::Base belongs_to :user belongs_to :car, polymorphic: true validates_presence_of :user, :car # こう書きたいところだけど、これは動かない # validates_uniqueness_of :car,