Если вы создаете ассоциацию has_many
, belongs_to
в таблице / миграции для belongs_to
, вам нужно как-то указать ей, чтобы хранить идентификатор has_many
.
Inваш пример, в таблице фруктов / миграции, вы должны сказать, что вам нужен basket_id. Есть несколько способов сделать это. Вы уже обнаружили два из них:
t.integer :basket_id
t.belongs_to :basket_id
Существует также третий способ:
t.references :basket
Они все делают одно и то же. Пока у вас есть basket_id в таблице фруктов / миграции, все будет в порядке.
Еще одна вещь, которую вы можете захотеть сделать, если это еще не было сделано с миграцией, это добавить foreign_key. Вы можете сделать это, добавив foreign_key: true
:
t.references :basket, foreign_key: true
Это сообщит фруктовой таблице, что basket_id
- это Foreign_key, по сути, ключ от другой таблицы (таблицы корзины).