使用 Rails 中的索引创建 Join-Table

Creating Join-Table with indexes in Rails

当我想创建一个join-table的时候,我从rubyguides中了解到,我可以直接设置索引如下:

create_join_table :products, :suppliers do |t|
  t.index [:product_id, :supplier_id]
  t.index [:supplier_id, :product_id]
end

但是当搜索更多关于我阅读的主题时,我应该在创建 table 之后添加索引:

add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)

Rails (4) 理解第一种方法还是在创建我的 table 之后添加索引更好?

我的两个示例会提供相同的索引还是两个不同的索引?

好吧,正如@Jason 指出的那样,我尝试了两种方法,结果结果是一样的:)

create_join_table :products, :suppliers do |t|
    # either directly here
    t.index [:product_id, :supplier_id], :unique => true
end

# or afterwards, both work
add_index(:products_suppliers, [:product_id, :supplier_id], :unique => true)

即使定义 uniqueness 在第一个示例中也有效。