ActiveRecord Dynamic:has_many foreign_key

时间:2014-02-03 15:52:43

标签: ruby-on-rails ruby activerecord has-many

我有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,但这就是我需要的关系。 (我没有设计这种关系,这正是我必须要处理的事情..)

思想?

1 个答案:

答案 0 :(得分:2)

你应该添加以下关系:

Person - has_many :injuries
Player - has_many :injuries, through: :person