有没有办法在Rails 3.1+迁移中的字段上指定数据库级别唯一性约束?我知道ActiveRecord的validates_uniqueness_of
会起作用,但我很想知道这是否可以在其他地方指定。
例如,为了指定“登录”字段在迁移中应该是唯一的,例如......
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_of首选方式吗?
答案 0 :(得分:1)
您可以添加唯一索引:
def change
create_table :users do |t|
t.string :name
t.string :login
t.timestamps
end
add_index :users, :login, :unique => true
end