Чтобы разрешить пустую строку, но отклонить nil в обратном вызове проверки активной записи, используйте условный процесс, чтобы условно потребовать наличие атрибута, если он не равен nil.
Итак, код выглядит так:
validates :name, presence: true, if: proc { name.nil? }
Но вы, вероятно, хотите разрешить ноль. Тогда не проверяйте. Все еще проверяете наличие? в коде для нулевой или пустой строки.