How to handle failed finds

What’s the best way to handle a find that doesn’t find anything?

For example.

Model Foo

@result = Foo.find(:first, :condition => “some condtion string”).name

if the condition is not met Foo.find stops the application with
‘unexpected
nil’.

What is the best way to gracefully trap this error and return something
meaningfull to the calling method?


Best Regards,
-Larry
“Work, work, work…there is no satisfactory alternative.”
— E.Taft Benson

On 4/3/06, Larry K. [email protected] wrote:

What is the best way to gracefully trap this error and return something
meaningfull to the calling method?

@result = Foo.find(:first, :condition => “some condtion string”)
@result && @result.name # returns the name or nil

Or you can raise an exception:

@result = Foo.find(:first, :condition => “some condtion string”)
raise ActiveRecord::RecordNotFound unless @result
@result.name


Rick O.
http://techno-weenie.net