:null => false
говорит вашей базе данных не принимать NULL
значения.
:default => 0
делает две вещи:
- Скажите вашей базе данных использовать «0» в качестве значения по умолчанию, когда
NULL
или ничего не указано в запросе. - Скажите rails использовать «0» в качестве значения по умолчанию при создании нового объекта.
Точка 2 гарантирует, что при сохранении нового объекта у вас действительно будет действительное значение.
Чтобы ответить на ваш вопрос: если вам не нужны значения NULL
в вашей базе данных, установите :null => false
, в противном случае просто используйте параметр :default
.Напоминаем, что '0' и NULL
- это не одно и то же.
Отсутствие значений NULL
может быть важно для целей индексации или если вам необходимо предоставить прямой доступ к базе данных третьей стороне.