【发布时间】:2015-11-07 21:33:43
【问题描述】:
当我想创建一个连接表时,我从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)是否理解第一种方法,还是在我的表创建后添加索引更好?
我的两个示例会提供相同的索引还是两个不同的索引?
【问题讨论】:
-
尝试一种方式,
rake db:migrate,检查schema.rb,然后检查rake db:rollback,然后尝试另一种方式。此外,您发布的第一部分代码与您提供的链接中的代码不匹配。 -
在第二个示例中,您要添加唯一性约束。我认为您不能在第一个示例中的块中添加唯一性约束(奇怪的 Rails 怪癖)。所以:如果你想要一个索引和唯一性,你必须用第二种方法。
-
好的,非常感谢!这就是我想知道的:)
标签: ruby-on-rails database model rails-migrations