Необходимо? Нет. Мы все еще можем использовать приведенный ниже код в миграциях rails 5:
add_reference :article, :vendor, foreign_key: true
, но мы также можем иметь некоторый контроллер magi c для «связи» без ссылок. Единственная проблема в том, что нам все равно придется где-то хранить реляционный идентификатор. Например, если вам нужна ссылка без внешнего ключа для индекса, напишите в контроллере статьи следующее:
def index
@vendor = Vendor.find(params[:vendor_id]) if params[:vendor_id]
## do stuff with vendor object
end
Это правильный способ сделать это? Если вам абсолютно необходимо избегать использования внешнего ключа, это один из способов достижения того же результата. Где вы храните и отправляете параметры для отношения id, зависит от разработчика.