例えばLikeの実装で例えば1つの記事に対しては1ユーザー当たり1回しかLikeできないとします。 つまり、(article_id, user_id)の組み合わせはユニークでなくてはなりません。 そういったときのvalidationの書き方は以下のようにかなりシンプルに書くことができます。 class Like < ActiveRecord::Base belongs_to :user belongs_to :article validates :user_id, :uniqueness => {:scope => :article_id} end Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back
![Railsで2つ以上の値の組み合わせに対するユニーク制約をかける - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/f3785a3c91209247fb928f97536c044e5287d51d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UmFpbHMlRTMlODElQTcyJUUzJTgxJUE0JUU0JUJCJUE1JUU0JUI4JThBJUUzJTgxJUFFJUU1JTgwJUE0JUUzJTgxJUFFJUU3JUI1JTg0JUUzJTgxJUJGJUU1JTkwJTg4JUUzJTgyJThGJUUzJTgxJTlCJUUzJTgxJUFCJUU1JUFGJUJFJUUzJTgxJTk5JUUzJTgyJThCJUUzJTgzJUE2JUUzJTgzJThCJUUzJTgzJUJDJUUzJTgyJUFGJUU1JTg4JUI2JUU3JUI0JTg0JUUzJTgyJTkyJUUzJTgxJThCJUUzJTgxJTkxJUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lYTZlM2EzOGFiNDRkMTNkMDZhZDExNjI2MjE2NjUzMw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwd2FkYWtvMTExJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01ZTIxMTMxODYzZjIzZjI4ZGQ4ZDU1N2NkODA2ODc2YQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D6b6ec6c8a2a1488950efbff7c097265d)