2016-08-21 15 views
1

チーム、ユーザー、リクエストという3つのモデル間で関連付けがうまくいくようになっています。同じモデル間で複数のhas_many関連を持つ多相関連

  • チームにはユーザーがいます。
  • ユーザーはリクエストを作成できます。
  • 要求は、チームまたはユーザーのいずれかに割り当てることができます。ここで

私は現在、それらを持っているようなモデルです。

class User < ActiveRecord::Base 
    belongs_to :team 
    has_many :created_requests, as: :creator, class_name: "Request" 
    has_many :assigned_requests, class_name: "Request", as: :assignable, foreign_key: "assignable_id" 
end 

class Team < ActiveRecord::Base 
    has_many :users 
    has_many :assigned_requests, class_name: "Request", as: :assignable, foreign_key: "assignable_id" 
end 

class Request < ActiveRecord::Base 
    belongs_to :creator, class_name: "User" 
    belongs_to :assignable, polymorphic: true 
end 

関係の大半は、動作するようですが、私は、ユーザーのcreated_requestsを閲覧しようとして問題に遭遇。のみ -

をユーザーとcreated_requestsとの間の関係が多型ではないので、何のcreator_typeはありません私が手にエラーが「:PG :: UndefinedColumn:ERROR列requests.creator_typeが存在しないのActiveRecord :: StatementInvalid」でありますユーザー/チームとassigned_requestsの関係は多態的です。モデルでこれをどのように指定しますか?

ありがとうございます!

答えて

1

Userモデルのhas_many :created_requests, as: :creator, class_name: "Request"からas: :creatorを削除してください。 as:は、多態的な関連付けのためのものであり、あなたが言うようにそれが多形的な関連でない場合、そこにはないはずです。

関連する問題