Как правило, лучше (и почему) проверять атрибуты в модели или в определении базы данных?
Для (тривиального) примера:
В пользовательской модели:
validates_presence_of :name
против миграции:
t.string :name, :null => false
С одной стороны, включение его в базу данных кажется большей гарантией от любого проникновения плохих данных. С другой стороны, включение его в модель делает вещи более прозрачными и понятными, группируя их в код с остальной частью проверок. Я также подумал о том, чтобы сделать и то, и другое, но это кажется и СУХИМЫМ, и менее ремонтопригодным.