在Rails中创建包含索引的Join-Table

时间:2015-11-07 21:33:44

标签: ruby-on-rails database model rails-migrations

当我想创建一个连接表时,我从rubyguides读到的是我可以直接设置索引,如下所示:

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

但是当我在阅读的主题上进行更多搜索时,我应该在创建表后添加索引:

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

Rails(4)是否理解第一种方法,还是在创建表后更好地添加索引?

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

1 个答案:

答案 0 :(得分:0)

好的,正如@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也适用于第一个示例。

相关问题