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"