我在旧数据库(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)
,我会从俱乐部获得一条记录的预期结果。我的关联设置不正确吗?
答案 0 :(得分:2)
尝试在>>> import json
>>> with open('data.txt', 'w') as outfile:
json.dump(dict,outfile)
来电中切换:foreign_key
和:primary_key
。对于belongs_to
和belongs_to
调用,它们应该相同,因为它们引用“子”表上的哪个外键引用关系中“父”表上的哪个主键。在你的情况下:
has_many