title: first_or_initialize bug or what happened
body: <p>I try to insert record but Active Record do same magick that i don't understand !?!?!? 
  My test code:</p>
  
  <pre><code>  UserToken.where(:user_id=&gt;2).first_or_initialize.tap  do |user|
       user.token   = 'token',
       user.type_id = 0,  
       user.user_id = 2 
       user.save!
    end
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code> UserToken Load (56.9ms)  SELECT `user_tokens`.* FROM `user_tokens` WHERE `user_tokens`.`user_id` = 2 LIMIT 1
     (56.4ms)  BEGIN
     (56.4ms)  UPDATE `user_tokens` SET `type_id` = 0, `token` = '---\n- token\n- 0\n- 2\n', `updated_at` = '2013-06-27 20:19:22' WHERE `user_tokens`.`id` = 19
     (56.3ms)  COMMIT
  =&gt; #&lt;UserToken id: 19, user_id: 2, token: ["token", 0, 2], type_id: 0, created_at: "2013-06-27 20:14:11", updated_at: "2013-06-27 20:19:22"&gt;
  </code></pre>
  
  <p>Why update token <code>token</code> = '---\n- token\n- 0\n- 2\n', token: ["token", 0, 2] i just try to record 'token' not array ?!?!?!?</p>