0
如果我有兩個引用同一模型的模型,我該如何設置它?我現在所擁有的是Rails模型關係
class Game < ActiveRecord::Base
has_one :home_team_stats, :class_name => 'Stats'
has_one :away_team_stats, :class_name => 'Stats'
class Stats < ActiveRecord::Base
belongs_to :game
然而,當ActiveRecord的運行它搜索與x的game_id第一項統計查詢。因此,如果home_stats是最新條目,則home_stats和away_stats都將設置爲home_stats條目。如果它是離開遊戲,他們都會被設置爲。
Stats Load (0.3ms) SELECT "stats".* FROM "stats" WHERE "stats"."game_id" = 1 LIMIT 1
從我的理解,解決這個問題的方法是將關係從has_one更改爲belongs_to或類似的東西。雖然這種感覺本質上是錯誤的,但通常我會說數據屬於一場比賽,而且一場比賽有主隊和客場球隊的統計數據。有沒有更好的方法來設置它?
編輯:想通了。
我改變了博弈模型以下幾點:
has_one :home_team_stats, :class_name => 'Stats', :foreign_key => "id", :primary_key => "home_team_stats_id"
has_one :away_team_stats, :class_name => 'Stats', :foreign_key => "id", :primary_key => "away_team_stats_id"