我有3个模特,人,玩家和伤害。
玩家= #<Player id: 9999, name: "Bob the player", person_key: "some-unique-key">
Person = #<Person id: 1234, person_key: "some-unique-key">
受伤= #<Injury id: 8374, injury: "Hurt", person_id: 1234>
玩家 - has_one :person, :foreign_key => :person_key, :primary_key => :person_key
人 - has_one :player, :foreign_key => :person_key, :primary_key => :person_key
受伤 - belongs_to :person
我主要与玩家合作,我需要能够拥有从玩家到受伤的关系
Player.injury需要做类似的事情;
Player - has_many :injuries, :foreign_key => :person_id, :primary_key => { self.person.id }
我意识到你不能在那里做self.person.id
,但这就是我需要的关系。 (我没有设计这种关系,这正是我必须要处理的事情..)
思想?
答案 0 :(得分:2)
你应该添加以下关系:
Person - has_many :injuries
Player - has_many :injuries, through: :person