Разве Rails-методы find_by_ не должны возвращать пустой массив вместо nil?
Обычно нет записей, соответствующих условию find_by_, но возвращать ноль не имеет смысла. Потому что тогда, на мой взгляд, ошибки возникают из-за разумного кода вроде:
<% for thing in @thing_that_might_be_an_array_or_might_be_nil do %>
Поскольку find_by_ всегда возвращает массив, даже если есть только 1 запись, он также должен возвращать массив, если есть 0 записей. Тогда все эти
<% @thing.each
и
<% for thing in @thing
в наших взглядах будет тихо пропущено вместо того, чтобы вызывать «Извините, но что-то пошло не так». (или что мне не хватает? )