0
私は、Railsアプリケーションにある3つのモデルの最良の関係構造を決定しようとしています。2つの親のうちの1つに属するモデル
モデルは、候補者、雇用者、およびビデオです。
ビデオが雇用者に属し、他の人が候補になることがあります。このため、私は雇用者と候補者の両方にビデオに外国キーを付けるのが嫌いです。なぜなら、それは間違っていると感じるからです。
以下のコードの問題は、ビデオがでないことです。には多数の候補がありますが、belongs_toとの関係はできません。より良い方法は何ですか?
class Video < ActiveRecord::Base
has_many :video_candidates
has_many :candidates, :through => :video_candidates
end
class Candidate < ActiveRecord::Base
has_many :video_candidates
has_many :videos, :through => :video_candidates
end
class VideoCandidate < ActiveRecord::Base
belongs_to :candidate
belongs_to :vieo
end
編集:多形性協会が行く方法です。私は私の解決策を以下に載せるつもりです。これが誰かを助けることを望みます。
class Video < ActiveRecord
belongs_to :watchable, polymorphic: true
end
class Candidate < ActiveRecord::Base
has_many :videos, as: :watchable
end
class Employer < ActiveRecord::Base
has_many :videos, as: :watchable
end
と移行
class CreateVideos < ActiveRecord::Migration[5.0]
def change
create_table :videos do |t|
t.string :title
t.belongs_to :watchable, polymorphic: true
t.timestamps
end
add_index :videos, [:watchable_id, :watchable_type]
end
end