Добавление индекса: уникально для столбца в ruby ​​на рельсах посредством генерации миграции

Я знаю, что могу коснуться миграции и добавить

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

a Я хочу, чтобы уникальный идентификатор пользователя был уникальным. Пробовал

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

Но если я посмотрю на мой файл миграции после этого, он не выглядит правильно:

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

Любая идея или предложение?

Ответы

Ответ 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