Object Not Initialized in Ruby

ruby, ruby-on-rails

Solution

have no idea why the Player object wouldn't be initialized here

It's not initilised quite simply because you have not initialised it!

You have overriden the ActiveRecord::Base initialize method but you are not calling through to it it so the Player class is not initialised properly

Just call super

class Player < ActiveRecord::Base
    attr_accessor :name, :rating, :team_name
    def initialize(name, rating, team_name)
        super
        @name = name
        @rating = rating
        @team_name = team_name
    end
end

You probably didn't mean to override the initialize method at all, it's strongly discouraged http://blog.dalethatcher.com/2008/03/rails-dont-override-initialize-on.html, you probably meant to make use of the after_initialize callback so you can split the name, rating and team_rating out from the params hash that is passed in to whatever method causes the player model to be intialised in the first place

Problem

I'm working in Rails and have the following class: ``` class Player < ActiveRecord::Base attr_accessor :name, :rating, :team_name def initialize(name, rating, team_name) @name = name @rating = rating @team_name = team_name end end ``` When I run ``` bundle exec rails console ``` and try: ``` a = Player.new("me", 5.0, "UCLA") ``` I get back: ``` => #<Player not initialized> ``` I have no idea why the Player object wouldn't be initialized here. Any suggestions on what to do / explanation for what might be causing this? Thanks, Mariogs

Original source