因此,如果您检查生成的schema.rb,您会发现差异并没有那么大:
create_join_table :users, :brands do |t|
t.index [:user_id, :brand_id]
end
创造
create_table "brands_users", id: false, force: :cascade do |t|
t.bigint "brand_id", null: false
t.bigint "user_id", null: false
t.index ["brand_id", "user_id"], name: "index_brands_users_on_brand_id_and_user_id"
end
但是
create_join_table :users, :brands do |t|
t.index [:brand_id, :user_id]
end
创造
create_table "brands_users", id: false, force: :cascade do |t|
t.bigint "brand_id", null: false
t.bigint "user_id", null: false
t.index ["user_id", "brand_id"], name: "index_brands_users_on_user_id_and_brand_id"
end
索引名称略有变化(它按字母顺序获取表名,然后按声明顺序获取键名)
而实际的索引变化 -> 键顺序不同。
现在这有多重要?有一个非常详细的stackoverflow question + answers,您可以参考:
https://stackoverflow.com/a/2292716/1404905