Как сделать связь между таблицами one-to-one в Rails
Как сделать миграцию и модели, где связь один к одному.
Например, две модели: user и address.
Связь должна быть от пользователя к адресу, чтоб можно было сделать так: user.create_address(*)
И так: user.address.city.
Я не знаю в чем разница has_one и belongs_to.
Ответы (1 шт):
Автор решения: Василиса
→ Ссылка
Разница в том, что это две стороны одной связи. Кто кому принадлежит - определяете согласно логике и здравому смыслу. "Адрес принадлежит пользователю" звучит нормально, "пользователь принадлежит адресу" - так себе.
class Address < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_one :address
end
В таблице addresses должно быть поле user_id соответственно