Rails カラムにユニークを追加する

Railsでカラムにユニーク属性を追加するには、add_indexでユニークオプションを指定します。

tagsテーブルのnameカラムにユニーク属性を付けてみます。

マイグレーションファイルにて次のようにします。

create_table :tags do |t|
 t.string :name
end

add_index :tags, :name, :unique => true

マイグレーションしたあとに、テーブルの情報を見てみると次のようにユニーク属性がついているのが分かります。index_tags_on_nameの箇所です。

                              Table "public.tags"
 Column |       Type        |                     Modifiers                     
--------+-------------------+---------------------------------------------------
 id     | integer           | not null default nextval('tags_id_seq'::regclass)
 name   | character varying | 
Indexes:
    "tags_pkey" PRIMARY KEY, btree (id)
    "index_tags_on_name" UNIQUE, btree (name)