title: Passing extra data to find_or_create
body: <p>Something I've always wondered about rails is the ability to pass extra data to find_or_create methods in rails. For example, I can't do the following</p>
  
  <pre><code>User.find_or_create_by_name('ceilingfish', :email =&gt; 'an_email@a.domain', :legs =&gt; true, :face =&gt; false)
  </code></pre>
  
  <p>I could do </p>
  
  <pre><code>u = User.find_or_create_by_name('ceilingfish')
  u.update_attributes(:email =&gt; 'an_email@a.domain', :legs =&gt; true, :face =&gt; false)
  </code></pre>
  
  <p>But that's uglier, and also requires three queries. I suppose I could do</p>
  
  <pre><code>User.find_or_create_by_name_and_email_and_face_and_legs('ceilingfish','an_email@a.domain',true, false)
  </code></pre>
  
  <p>But that kind of implies that I know what the values of <code>email</code>, <code>legs</code> and <code>face</code> are. Does anyone know if there's a really elegant way of doing this?</p>