В Rails 5 - при обращении к модели автоматически создается индекс на foreign_key
.
API перенос изменился в Rails 5 -
Rails 5 изменили миграционную API из-за которого даже если null: false
опция не передаются метки времени при миграции выполняется, то не нуль автоматически добавляется для временных меток.
Аналогичным образом, мы хотим индексировать столбцы с ссылками практически во всех случаях. Поэтому Rails 5 не нуждается в ссылках, чтобы иметь index: true
. Когда миграция выполняется, индекс автоматически создается.
В качестве примера - (Копирование с http://blog.bigbinary.com/2016/03/01/migrations-are-versioned-in-rails-5.html)
При запуске rails g model Task user:references
Rails 4 будет генерировать
class CreateTasks < ActiveRecord::Migration
def change
create_table :tasks do |t|
t.references :user, index: true, foreign_key: true
t.timestamps null: false
end
end
end
И рельсы 5 будет генерировать
class CreateTasks < ActiveRecord::Migration[5.0]
def change
create_table :tasks do |t|
t.references :user, foreign_key: true
t.timestamps
end
end
end
Я честно Дон Не понимаю ваш вопрос, опция index добавляет базу данных i ndex, внешний ключ добавляет внешний ключ базы данных. –