Все средства проверки выполняются независимо от порядка, в котором они определены. Таким образом, массив ошибок заполняется всеми ошибками проверки, что позволяет конечному пользователю исправлять все ошибки, а не только одну за раз. *
Так что да, вам нужно проверить, существует ли значение для поля и можно ли сравнить это значение с числом. Например, вам, вероятно, также необходимо принять во внимание, что значение может быть чем угодно, кроме числа - пустая строка будет вероятным значением - что также приведет к ошибке.
Но все это академично, потому что, как указал Стивен, просто используйте validates_numericality_of :field, ::greater_than_or_equal_to => 0