生成移行を介してRuby on Railsの列にインデックス:uniqueを追加する質問する

生成移行を介してRuby on Railsの列にインデックス:uniqueを追加する質問する

移行に触れて追加できることはわかっています

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

しかし、これを生成する適切な Rails 移行コマンドは何でしょうか?

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

顧客IDを一意に設定したい。試してみた

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:type:uniq
  • 通常通り、型は文字列にデフォルト設定されます

Railsガイドの例

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

質問への回答

rails g migration add_index_to_customers customerID:integer:uniq

おすすめ記事