title: RSpec: factory not persisting after attribute changes?
body: <p>Im fairly new to RSpec but I am running into an issue (This is on Rails 4 fwiw). I have a simple model/factory test:</p>
  <pre><code>context &quot;Scopes&quot; do
      let (:widget) {create(:core_widget)}
    
      it &quot;:active&quot; do
        puts &quot;Last Created widget:&quot;
        puts pp(Core::Widget.last)
        widget.type = &quot;active&quot;
        widget.object_status_id = 15
        puts &quot;After attribute change:&quot;
        puts pp(Core::Widget.last)
        #puts pp(widget.attributes)
        expect(Core::Widget.active.ids).to include(widget.id)
      end
    end
  </code></pre>
  <p>This is testing out a very simple scope:</p>
  <pre><code>scope :active, -&gt; { where(type: 'active', object_status_id:
                              [25, 15])
  </code></pre>
  <p>Pretty basic. However I noticed that checking (via the <code>puts</code> of the factory object<code>does NOT show the attribute changes (Changing</code>.type<code>to</code>active<code>and</code>.object_status_id<code>to</code>15`) when I re-print it?</p>
  <p>I was told that <code>let</code> is lazily evaluated, and I understand that....but when I view the different object_id's when printing they are completely different. <code>let</code> should still have the same object reference in the same <code>it</code> block right?</p>
  <p>Initially I thought it was a problem because I was doing <code>build_stubbed</code> on the factory creation. I also tried <code>let!</code> because I thought maybe that was the problem. Neither worked.</p>