2017-07-16 153 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