2017-07-16 105 views
0

我有以下方案加载数据:导轨5 - 不能从相关联的模型(belongs_to的/ HAS_ONE)

class Rental < ApplicationRecord 
    has_one :tenant 
end 
class Tenant < ApplicationRecord 
    belongs_to :rental 
end 

所以在rentals DB表中,有一个称为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 

什么我还没有在这里失踪?我忘了添加什么东西到一个或另一个模型?

回答

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 
相关问题