2013-01-25 81 views
0

有沒有辦法在Rails 3.1+遷移中的字段上指定數據庫級唯一性約束?我知道ActiveRecord的validates_uniqueness_of會工作,但我很想知道這是否可以在其他地方指定。Rails 3.1+遷移中databse級別的獨特模型字段?

例如,爲了指定「登錄」字段應該是在遷移,如獨特的...

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :name 
     t.string :login 

     t.timestamps 
    end 
    end 
end 

...我想補充一個選項一樣:unique => true

Documentation中沒有提到任何東西,所以我認爲這不是一個很好的地方/做事情的方式,但有人知道如何實現它(即使它被手動添加到結果模式中)?或者是validates_uniqueness_的首選路線?

回答

1

您可以添加唯一索引這樣:

def change 
    create_table :users do |t| 
    t.string :name 
    t.string :login 

    t.timestamps 
    end 

    add_index :users, :login, :unique => true 
end 
+0

非常感謝,我給那後來去 – timecode