Ответ 1
В основном оператор ruby задает значение ключа внутри хеша. Таким образом:
{ :minimum => 5 }
Является хешем ruby, который имеет символ: минимум как ключ, который сопоставляется с значением 5. Хэш с одной записью в этом примере. То же самое для:
:presence => true
Еще хэш. Однако в рубине, когда у вас есть метод, вы можете опустить {}, который окружает хэш. Это то, что происходит с методом validates. Это метод, и поэтому переданный хэш явно не нужен {}.