2017-07-16 59 views
0

からデータをロードすることができない私は、以下のスキーム有する午前:rentals DBテーブル中のSOレール5 - 関連モデル(belongs_toの/ has_oneの)

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

を、カラムは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側にの外部キーがあります。です。

あなたのモデルでは

  • を持っており、
  • tenantので、あなたのtenants表はrental_id列ではなく、周りの他の方法を持っている必要があります... rental

に属します。


あなたのデータベーススキーマを変更したくない場合、あなたはまた、モデルとの関係を変更することができます。

class Rental < ApplicationRecord 
    belongs_to :tenant 
end 

class Tenant < ApplicationRecord 
    has_one :rental 
end 
関連する問題