2013-06-27 37 views
7

我不明白爲什麼我收到以下錯誤:的ActiveRecord :: AssociationTypeMismatch:用戶期望,得到了Fixnum對象

ActiveRecord::AssociationTypeMismatch: User(#29943560) expected, got Fixnum 

當我這樣做,在軌控制檯:@game = Game.create(:player => 1060, :played => 1061)

我只是想創建關於下面的模型關聯的新的Game

class User < ActiveRecord::Base 
    has_many :game_as_player, :class_name => 'Game', :foreign_key => 'player_id' 
    has_many :game_as_played, :class_name => 'Game', :foreign_key => 'played_id' 
end 

class Game < ActiveRecord::Base 
    belongs_to :player, :class_name => 'User' 
    belongs_to :played, :class_name => 'User' 

    attr_accessible :player, :played, :score, :details, :viewed, :read 
end 

如果有人有一個想法... 非常感謝!

+0

根據你的關聯,付款人和播放代表相同的用戶(user_id)。我認爲你不應該爲球員設置不同的ID並進行比賽。 – usha

回答

18

它只是說,它希望有一個用戶,你給一個Fixnum

你應該這樣做

@game = Game.create(:player => Player.find(1060), :played => Player.find(1061)) 

或者,如果你想通過IDS給用戶

@game = Game.create(:player_id => 1060, :played_id => 1061) 
相關問題