1
所以我正在做一個應用程序,其中我有一個來自4個不同用戶的4個屬性的「遊戲」模型。其中一個屬性是player_id,另外3個是用戶uid(由facebook給出的字符串id)。Belongs_to與主鍵和外鍵的關聯
這兩款機型是這樣的:
class Game < ActiveRecord::Base
belongs_to :player, class_name: "User"
belongs_to :gamer_one, class_name: "User", primary_key: "gamer_one", foreign_key: "uid"
belongs_to :gamer_two, class_name: "User", primary_key: "gamer_one", foreign_key: "uid"
belongs_to :gamer_three, class_name: "User", primary_key: "gamer_one", foreign_key: "uid"
end
class User < ActiveRecord::Base
has_many :games, foreign_key: 'player_id'
has_many :game_ones, class_name: 'Game', foreign_key: 'gamer_one', primary_key: 'uid'
has_many :game_twos, class_name: 'Game', foreign_key: 'gamer_two', primary_key: 'uid'
has_many :game_threes, class_name: 'Game', foreign_key: 'gamer_three', primary_key: 'uid'
end
當我去到控制檯,檢查User.game_ones,User.game_twos,或User.game.threes,我得到確切的關係,我想,但如果我將它倒退(Game.gamer_one,Game.gamer_two,Game.gamer_three),我只是得到空值,並且查詢做錯了。
任何想法,如果我所做的belongs_to關係在某些方面是錯誤的?
交換'belongs_to'關聯中的foreign_key和primary_key。 – jvnill
大聲笑,這讓它..非常感謝你先生! – PatoBeltran
不錯。我已經把它作爲答案加上一點解釋。 – jvnill