ActiveRecord::AssociationTypeMismatch: User expected, got Fixnum

12,101

It just says that it want a User and you give a Fixnum

You should do something like

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

Or, if you want to give the users by ids

@game = Game.create(:player_id => 1060, :played_id => 1061)
Share:
12,101

Related videos on Youtube

Gozup
Author by

Gozup

Updated on July 24, 2022

Comments

  • Gozup
    Gozup almost 2 years

    I don't understand why I get the following error:

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

    when I do that in rails console: @game = Game.create(:player => 1060, :played => 1061)

    I just want to create a new Game regarding model associations below.

    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
    

    If anyone has an idea... Thanks a lot!

Related