8月 4th, 2012 • rails Railsのユニーク制約はよく、バリデーションでおこなわれる。 具体的には、Userモデルに、:uniqueness => trueというバリデーションを加える。 class User < ActiveRecord validates :name, :uniqueness => true end しかし、実際はこれだけでは十分ではないらしく、データベース側でもユニーク制約をしたほうがいいらしい。 参考:validates :uniquenessはuniquenessを保証しないのでDBにindexをつけましょう! Rails側とデータベース側のどちらにも、ユニーク制約をするほうがエラーの危険性もなくなるから、 やっておいたほうが無難である。 では、データベース側でのユニーク制約のやりかた。 マイグレーションに、次を加える。 add_index