title: Object doesn't support #inspect with many to many associations
body: <p>I have this problem already a week and I cannot google it anymore. I'm stuck.
  I have a simple model Game:</p>
  
  <pre><code>class Game &lt; ActiveRecord::Base
    serialize :data, :history
  
    # attr_accessible :title, :body
  
    TIMES_PER_MOVE = [1,2,3,4,5]
    TIMES_PER_GAME = [5, 10, 15, 30]
  
    has_and_belongs_to_many :players, class_name: User
  
    def create_available(user)
      self.players &lt;&lt; user
      self.save!
    end
  
  end
  </code></pre>
  
  <p>And a model User:</p>
  
  <pre><code>class User &lt; ActiveRecord::Base
    serialize :settings, Hash
  
    attr_accessible :first_name, :last_name, :phone, :email, :country, :birth_date, :password, :security_code, :invitation_token
    attr_writer :current_step
  
  
    has_and_belongs_to_many :games
    ...
  end
  </code></pre>
  
  <p>I create association between them with join table:</p>
  
  <pre><code>create_table :games_users, :id =&gt; false do |t|
        t.references :user
        t.references :game
  end
  </code></pre>
  
  <p>Everything looks good? -- NO WAY!!!</p>
  
  <p>When I create an instance of Game :</p>
  
  <pre><code>def create
      @game = Game.new()
  
        respond_to do |format|
          if @game.create_available(current_user) # see this method in the model
            format.html { redirect_to @game, notice: 'Game was successfully created.' }
            format.json { render json: @game, status: :created, location: @game }
          else
            format.html { render action: "new" }
            format.json { render json: @game.errors, status: :unprocessable_entity }
          end
        end    
    end 
  </code></pre>
  
  <p>It says Ok) that's fine. I created a game! BUT!!! What is going on in the console:</p>
  
  <pre><code>&gt;&gt; Game.all
    Game Load (0.2ms)  SELECT `games`.* FROM `games` 
  (Object doesn't support #inspect)
  </code></pre>
  
  <p>AND</p>
  
  <pre><code>&gt;&gt; u  = User.find_by_id 1
  u  = User.find_by_id 1
    User Load (0.2ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  #&lt;User id: 1, last_name: "Ivanyshyn", first_name: "Ostap", password:...&gt;
  
  &gt;&gt; u.games
  u.games
    Game Load (0.2ms)  SELECT `games`.* FROM `games` INNER JOIN `games_users` ON `games`.`id` = `games_users`.`game_id` WHERE `games_users`.`user_id` = 1
  (Object doesn't support #inspect)
  </code></pre>
  
  <p>When I try to do in my view something like this:</p>
  
  <pre><code>= current_user.not_started_games.each do |game|
    = game.time_per_move
  </code></pre>
  
  <p>My browser give something I would have never expected to see(I even do not use anywhere :history symbol!!!!):</p>
  
  <pre><code>undefined method `new' for :history:Symbol
  </code></pre>
  
  <p>This problem makes me cry. Maybe I am creating game instance incorrectly? Or my association is bad? </p>