0

デフォルトでプライマリインデックスを作成しないようにactiverecordにアドバイス/指示する方法を試してみています。

どうすればこれを達成できるか知っている人はいますか?

class CreateHouse < ActiveRecord::Migration
 def change
    create_table :houses do |table|
      table.string :name, :null => false, :unique => true
      table.integer :number, :null => false, :unique => true
      table.string :category, :null => false
      table.timestamps(:null => false)
    end
    add_index :houses, [:category, :number], :unique => true
  end
end

ありがとう

4

1 に答える 1

2

定義に追加できid: falseますcreate_table。次のことを試してください。

class CreateHouse < ActiveRecord::Migration
 def change
    create_table :houses, id: false do |table|
      table.string :name, :null => false, :unique => true
      table.integer :number, :null => false, :unique => true
      table.string :category, :null => false
      table.timestamps(:null => false)
    end
    add_index :houses, [:category, :number], :unique => true
  end
end

アップデート:

編集リクエストでkengimelが提案したものではなく、シンボルを使用するように更新create_tableおよびadd_indexブロックしました(明らかに拒否されました!)。:houses:stores

于 2013-08-07T17:21:15.133 に答える