避免默认的activerecord主索引创建

时间:2013-08-07 17:19:00

标签: mysql ruby-on-rails ruby activerecord rails-activerecord

我正在努力训练如何建议/告诉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

感谢

1 个答案:

答案 0 :(得分: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

更新:

已更新create_tableadd_index阻止使用:houses符号,而不是kengimel在编辑请求中建议的:stores(显然已被拒绝!)。