无法更新外键

问题描述 投票:0回答:1

我有以下关联:

class Tenant < ApplicationRecord
   belongs_to :landowner
end

class Landowner < ApplicationRecord
   has_many :tenants
end

在我的Web应用程序中,当我初始化Tenant对象时,我添加了一个默认的Landowner,该ID已经存储,其ID为0:

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

我遇到的问题是,我想将此Tenant对象的土地所有者更新为新的土地所有者,例如ID为1。我正在尝试通过控制台使用以下方法进行操作:

# 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})

但是这也不起作用(没有错误,但是更改不会持续)。有人可以帮我吗?

ruby-on-rails has-many
1个回答
0
投票
tenant = Tenant.first tenant.landowner = Landowner.last tenant.save!

这将保存或引发验证错误。

希望有帮助!
© www.soinside.com 2019 - 2024. All rights reserved.