title: Rails: class' object_id changes after I make a request
body: <p>I really can't explain this behavior, notice how after I make a request the class' object id has changed, and therefore my is_a? evaluation returns false.</p>
  
  <p>any ideas? I'm not even sure how to debug this. Also, this isn't related to making a request from the command line. The same behavior is exhibited on the web server as well, it's just easier to explain from the command line.</p>
  
  <pre><code>staging$ RAILS_ENV=staging script/console
  Loading staging environment (Rails 2.3.2)
  &gt;&gt; c = CartItem.new
  =&gt; #&lt;CartItem id: nil, order_id: nil, order_source: nil, date: nil, user_id: nil, created_at: nil, updated_at: nil, paid: nil, payment_id: nil, values: nil, cart_description: nil, type: nil, price: nil, email: nil, error: nil&gt;
  &gt;&gt; c.class.object_id
  =&gt; 70151495336400
  &gt;&gt; CartItem.object_id
  =&gt; 70151495336400
  &gt;&gt; c.is_a? CartItem
  =&gt; true
  &gt;&gt; app = ActionController::Integration::Session.new
  =&gt; #&lt;ActionController::Integration::Session:0x7f9ad5c55db0 .... &gt;
  &gt;&gt; app.get("site/favorite")
  =&gt; 200
  &gt;&gt; c.class.object_id
  =&gt; 70151495336400
  &gt;&gt; CartItem.object_id
  =&gt; 70151496019760
  &gt;&gt; c.is_a? CartItem
  =&gt; false
  &gt;&gt; c.class
  =&gt; CartItem(id: integer, order_id: string, order_source: string, date: date, user_id: integer, created_at: datetime, updated_at: datetime, paid: boolean, payment_id: integer, values: text, cart_description: string, type: string, price: integer, email: string, error: string)
  </code></pre>