У меня обычно будет какой-то код, похожий на следующий:
return if foo.nil?
bar = foo[:bar] || 0
Проблема с ними выше в том, что если foo [: bar] не существует, я получаю ошибку HTTP 500, потому что возникает исключение NameError, которое выглядит примерно так:
NameError (undefined local variable or method `foo'..)
Какая изящная работа?