<%= f.select :age, (18..99) %>
Проблема была в том, что ['18' .. '99'] не возвращает то, что вы ожидаете. ['18' .. '99'] - это не диапазон, а массив размером 1, где только один элемент имеет значение ['18' .. '99'].
>> ['18'..'99'].class
=> Array
>> ['18'..'99'].size
=> 1
>> ['18'..'99'].first
=> "18".."99"