有没有办法在 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
.
文档中没有提到任何内容,所以我认为这不是做事的好地方/方式,但是有谁知道如何实现这一点(即使它是手动添加到生成的架构中)?还是validates_uniqueness_of是首选方式?
您可以添加唯一索引,以便:
def change
create_table :users do |t|
t.string :name
t.string :login
t.timestamps
end
add_index :users, :login, :unique => true
end