通过产生迁移轨道上唯一的红宝石列:添加索引(Adding index :unique to a co

2019-09-02 07:28发布

我知道,我能触摸迁移和添加

add_index :table_name, :column_name, :unique => true

但是如何正确的轨道迁移命令生成的?

rails g migration add_index_to_column_name :column_name, :unique => true

是对的吗?

在我的特殊的例子,我有一个表的客户

  t.integer :customerID
  t.string :surname
  t.string :first_name
  t.string :phone

一个我想在客户设置为唯一的。 试着

rails g migration AddIndexToCustomers :customerID, :unique => true 

但是,如果我在这之后看向我的移民文件,它不看的权利看到这一点:

def change
    add_column :customers, :, :customerID,
    add_column :customers, :, :unique
    add_column :customers, :=, :string
  end

任何想法或建议?

Answer 1:

从Rails的3.2,你可以使用开始:

 rails g migration add_index_to_table_name column_name:uniq

例如,从http://guides.rubyonrails.org/3_2_release_notes.html

 rails g scaffold Post title:string:index author:uniq price:decimal{7,2}

UPD对不起。 默认类型,如果你不通过这将是字符串。 你可以自己通过类型。

column_name:type:uniq

因此,你的例子应该是这样的:

rails g migration add_index_to_customers customerID:integer:uniq


文章来源: Adding index :unique to a column in ruby on rails via generate migration