Rails ActiveRecordで複数のカラムに対して一意制約を設ける。複合一意制約 複数のカラムの組み合わせがユニークであってほしい場面に遭遇しました。 例えば、Siteテーブル Keywordテーブルが存在する時、 Keywordテーブルにある site_id と name そして date の組み合わせはユニークでなければいけない状況でした。 site_id, name, date の組み合わせがユニーク この組み合わせのユニークを担保するために、Railsアプリケーション側でユニークであることを確認するvalidate処理を設けて解決させました。 class Keyword < ActiveRecord::Base validates :site_id, uniquness: { scope: [:name, :date] } end 上記の様に書くことで、データのinsert