移行に触れて追加できることを知っています
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
customerIDを一意に設定したい。試しました
Rails g migration AddIndexToCustomers :customerID, :unique => true
しかし、この後に私の移行ファイルを見ると、これは正しく見えません:
def change
add_column :customers, :, :customerID,
add_column :customers, :, :unique
add_column :customers, :=, :string
end
アイデアや提案はありますか?
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