Ruby
Rails

Railsで2つ以上の値の組み合わせに対するユニーク制約をかける

More than 5 years have passed since last update.

例えばLikeの実装で例えば1つの記事に対しては1ユーザー当たり1回しかLikeできないとします。

つまり、(article_id, user_id)の組み合わせはユニークでなくてはなりません。

そういったときのvalidationの書き方は以下のようにかなりシンプルに書くことができます。


like.rb

class Like < ActiveRecord::Base

belongs_to :user
belongs_to :article

validates :user_id, :uniqueness => {:scope => :article_id}
end