Не удалось обновить внешние ключи - PullRequest
0 голосов
/ 15 января 2020

У меня есть следующая ассоциация:

class Tenant < ApplicationRecord
   belongs_to :landowner
end

и

class Landowner < ApplicationRecord
   has_many :tenants
end

В моем веб-приложении, когда я инициализирую объект Tenant, я добавляю значение по умолчанию Landowner, которое Я уже сохранил с идентификатором 0:

# my initilisation
new_tenant = Tenant.create(landowner_id: 0)

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу обновить землевладельца этого объекта Tenant до нового землевладельца, скажем, с идентификатором 1. I ' Я пытаюсь сделать это через консоль с помощью:

# I only have one tenant, and I made sure the last landowner is a new different landowner
Tenant.first.landowner = Landowner.last
Tenant.first.save!

Я не получаю никаких ошибок, но изменение не сохраняется. Я также попытался:

Tenant.first.update({:landowner_id => 1})

, но это тоже не работает (без ошибок, но изменения не сохраняются). Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 15 января 2020

Вы повторно инициализируете объект, вызывая first() на Tenant во второй раз, попробуйте вместо этого

tenant = Tenant.first
tenant.landowner = Landowner.last
tenant.save!

Это сохранит или выдаст ошибку проверки.

Надеюсь, это поможет!

...