当我想创建一个连接表时,我从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)是否理解第一种方法,还是在创建表后更好地添加索引?
我的两个例子会提供相同的索引,还是两个不同的索引?
答案 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
也适用于第一个示例。