Rails 3.1+ 迁移中数据库级别的唯一模型字段



有没有办法在 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

相关内容

  • 没有找到相关文章

最新更新