Создание Join-таблицы с индексами в Rails

Когда я хочу создать таблицу соединений, то я читаю из 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 ответ

Решение

Хорошо, как заметил @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 работает в первом примере.

Другие вопросы по тегам