belongs_to关联返回nil而has_many工作正常

时间:2015-08-01 18:18:04

标签: ruby-on-rails activerecord associations belongs-to

我在旧数据库(SQL Server)上使用rails。我也在使用gem composite_primary_keys ...我目前正在使用两个模型,home_games关联工作正常,但home_team关联没有。< / p>

class Game < MyDatabaseModel
  self.table_name = 'Game'
  self.primary_key = 'GameID', 'League'

  belongs_to :home_team, class_name: 'Club', foreign_key: 'ClubKey', primary_key: 'Home_Team'
end

class Club < MyDatabaseModel
  self.table_name = 'Club'
  self.primary_key = 'ClubID', 'Season', 'League'

  has_many :home_games, class_name: 'Game', foreign_key: 'Home_Team', primary_key: 'ClubKey'
end

现在当我myClub.home_games时,我收回了ActiveRecordRelation记录的预期结果。但是,当我myGame.home_team时,我得到一个零对象。如果我执行以下呼叫Club.where(ClubKey: game.Home_Team),我会从俱乐部获得一条记录的预期结果。我的关联设置不正确吗?

1 个答案:

答案 0 :(得分:2)

尝试在>>> import json >>> with open('data.txt', 'w') as outfile: json.dump(dict,outfile) 来电中切换:foreign_key:primary_key。对于belongs_tobelongs_to调用,它们应该相同,因为它们引用“子”表上的哪个外键引用关系中“父”表上的哪个主键。在你的情况下:

has_many