rails で複数一意制約
複数一意制約とは
複数一意制約とは、複数のカラムでセットでユニークにすること。
たとえば、電話番号の連絡先リストを作るとき。 {name: “daisuke”, phone: 111 }が登録されていたとする。
- {name: “daisuke”, phone; 111 } は登録させたくない
- {name: “taro”, phone: 111} は登録させたい
つまり、電話番号だけは重複してもいいけど、名前と合わせて重複させたくない。
対応方法
class User < ActiveRecord::Base validates :name,:uniqueness => {:scope =>:phone } end
でOK。
参考URL
http://yoshifumisato.jeez.jp/wordpress/post/rails/902 http://d.hatena.ne.jp/suginoy/20110507/p1