title: create! not setting datetime attribute in rails3
body: <p>I have a datatime attribute <code>taken_at</code> in one of my models that will record when a test was taken. I'm trying to validate that this field is always present in my model with the following line:</p>
  
  <pre><code>validates :taken_at, :presence =&gt; true
  </code></pre>
  
  <p>In my rspec tests, I'm validating this rule with the following test:</p>
  
  <pre><code>before (:each) do
    @user = Factory(:user)
    @attr = { :taken_at =&gt; DateTime.now }
  end
  
  it "should create a new profile given valid attributes" do
    # set taken_at inside of a block because the validations fail otherwise.    
    @user.hartman_value_profiles.create! do |hvp|
      hvp.taken_at = DateTime.now
    end
  end
  </code></pre>
  
  <p>As you can see, I'm setting <code>taken_at</code> inside a block rather than passing it in as parameter. This is working but I don't understand why the following test will fail:</p>
  
  <pre><code>it "should create a new profile given valid attributes" do    
    @user.hartman_value_profiles.create!(@attr)
  end
  </code></pre>
  
  <p>Does anyone have any insight into what is going on here? Any tips, tricks or pointers to the documentation would be greatly appreciated.</p>