2015-12-28 2 views
1

У меня есть таблица User и таблица Product. Существует has_many :products и связь belongs_to :user. Я правильно определил модели продукта и пользователя ... мой вопрос заключается в настройке миграции, чтобы схема появилась правильно. Я попытался, и это была дополнительная строка в схеме, которую я получил.Rails: использование миграции для создания ассоциации

add_index "product", ["user_id"], name: "index_product_on_user_id"

тогда я имел взгляд онлайн и вместо add_index другой код был add_reference ... это имеет значение? И не уверен в имени: «index_product_on_user_id». Благодаря!

+0

Я предполагаю, что это должны быть продукты, а не продукты 'add_index '" –

+0

'add_index: products,: user_id' –

+0

В таблице продуктов будет несколько одинаковых' user_id'. Почему вы хотите индексировать на 'user_id', вместо этого вы должны индексировать продукт' id'. –

ответ

2

add_reference добавляет необходимые столбцы и (необязательно) создает индекс, тогда как add_index просто создает индекс, поэтому, если вы хотите использовать add_index, вам нужно создать столбец отдельно.

Вам практически не нужно указывать имя индекса - это не влияет на работу индекса или его использование (в одном случае имя автогенерированного индекса превышает максимальную длину индекса).

Смежные вопросы