我有以下方案:
class Rental < ApplicationRecord
has_one :tenant
end
class Tenant < ApplicationRecord
belongs_to :rental
end
因此,在rentals
数据库表中,有一个名为tenant_id
的列。
我想通过rental
模型显示有关租户的数据,所以我尝试了这个:
@rental = Rental.find(params[:id])
puts @rental.tenant.inspect
但是出现了以下错误:
PG::UndefinedColumn: ERROR: column tenants.rental_id does not exist LINE 1: SELECT "tenants".* FROM "tenants" WHERE "tenants"."rental_i... ^ : SELECT "tenants".* FROM "tenants" WHERE "tenants"."rental_id" = $1 LIMIT $2
我在这里想念的是什么?我忘记在一个或另一个模型上添加东西吗?
答案 0 :(得分:1)
Rails惯例是在belongs_to
侧上设置外键。
在你的模特中
rental
有一个tenant
和tenant
属于rental
...因此,您的tenants
表格应该有一个rental_id
列,而不是相反。
如果您不想更改数据库架构,还可以更改模型关系:
class Rental < ApplicationRecord
belongs_to :tenant
end
class Tenant < ApplicationRecord
has_one :rental
end