title: First_or_create with update on match?
body: <p>I really like the <code>first_or_create</code> method:</p>
  
  <pre><code># Find the first user named Scarlett or create a new one with a particular last name.
  User.where(:first_name =&gt; 'Scarlett').first_or_create(:last_name =&gt; 'Johansson')
  # =&gt; &lt;User id: 2, first_name: 'Scarlett', last_name: 'Johansson'&gt;
  </code></pre>
  
  <p>I was wondering how I could also have this update the User with the last_name 'Johannson' if it's not present or different.  Looking for the briefest way of doing this.  A one liner similar to the above would be ideal.</p>
  
  <p>One possible approach is <a href="https://stackoverflow.com/a/3024871/378622">using first_or_initialize combined with update_attributes</a>.  The only concern I have with this approach is that it would run an update even if there were a 100% match on the fields provided.</p>