А как насчет пустой строки? (то есть: строка типа " "
со всеми пробелами?)
Я не уверен, есть ли что-то на уровне БД, но для модели activerecord я бы использовал что-то вроде:
validates :my_column, presence: true, allow_nil: true
Эта проверка будет проверять, что строка не пуста (это предотвратит сохранение модели, если строка тоже " "
, а не просто ""
)
https://guides.rubyonrails.org/active_record_validations.html#presence
Если вы хотите исключить ""
, но разрешить " "
, тогда я бы использовал что-то вроде
validates :my_column, length: {minimum: 1}, allow_nil: true
Обратите внимание на разницу между использованием минимальной длины (для вызова ошибки проверки используется length
) вместо присутствия (для вызова ошибки проверки используется метод blank?
)
https://guides.rubyonrails.org/active_record_validations.html#length (см. Совет в руководстве по добавлению пользовательского сообщения для minimum: 1
, поскольку сообщение об ошибке по умолчанию - множественное число)