title: How to issue a 'find' or 'where' that raises a RecordNotFound
body: <p>When I call a find with an id, it becomes a targeted find, and will throw an error RecordNotFound. </p>
  
  <pre><code>Foo::Bar.find(123) # RecordNotFound if no Bar with id 123 exists.
  </code></pre>
  
  <p>But when I call that with conditions, I get nil if not found:</p>
  
  <pre><code>Foo::Bar.find(:first, :conditions =&gt; [ "lower(name) = ?", name.downcase ])
  </code></pre>
  
  <p>I want such a conditional search to raise an error too. I know I can do:</p>
  
  <pre><code>Foo::Bar.find_by_name!("CocktailBar") #=&gt; raises Recordnotfount if not not found.
  </code></pre>
  
  <p>But that has only really simple conditions. Mine need a little more complexity; actually something like:</p>
  
  <pre><code>Foo.Bar.select{ |pm| pm.name.downcase =~ /cocktail/}.first
  </code></pre>
  
  <p>And, if nothing is found, I want it to raise the RecordNotFound error. Is that possible at all? Or should I simply add some code to check against nil? and if nil? raise the error myself? And if so, how do I do that in Rails 3? </p>