У меня есть 3 модели, персона, игрок и травма.ActiveRecord Динамический: has_many foreign_key
Игрок = #<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
я в первую очередь работать с игроком, и мне нужно, чтобы иметь возможность иметь отношения has_many от игрока к травмам
Player.injury должен сделать что-то похожее на;
Player - has_many :injuries, :foreign_key => :person_id, :primary_key => { self.person.id }
Я понимаю, что вы не можете сделать self.person.id
там, но это отношение мне нужно. (Я не разрабатывал эти отношения, это просто то, с чем мне нужно работать.)
Мысли?
Просто из любопытства, почему у вас есть отдельный 'person_key' поле? Похоже, вы используете его для формирования отношений между «Player» и «Person», но лучше всего использовать «has_one» и «own_to» вместо обычного обычного ключа - отношения внешнего ключа, не? –