Rails 3.1以降の移行でフィールドにデータベースレベルの一意性制約を指定する方法はありますか?ActiveRecordvalidates_uniqueness_of
が機能することは知っていますが、これを他の場所で指定できるかどうか知りたいです。
たとえば、「login」フィールドが...などの移行で一意である必要があることを指定するには、
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.string :login
t.timestamps
end
end
end
...のようなオプションを追加したいと思います:unique => true
。
ドキュメントには何も記載されていないので、それは物事を行うのに最適な場所/方法ではないと思いますが、これがどのように達成されるかを誰かが知っていますか(結果のスキーマに手動で追加された場合でも)?それとも、validates_uniqueness_ofが好ましい方法ですか?