Они оба одинаковы, {} ничего не добавляют во втором аргументе, кроме того, чтобы сделать вещи еще более явными, чем они были (достаточно использовать синтаксис =>, чтобы сказать «это хеш» любому, кто использует ruby на любой промежуток времени).
Ruby автоматически включит список параметров, таких как:
someFunction(:arg1 => value1, :arg2 => value2)
в хеш и передайте его в качестве единственного аргумента для вас. Время, когда вам нужно добавить {} вокруг хэшей, это когда у вас есть такие вещи, как хеш хэшей или функция, которая ожидает два хэша (например, несколько методов rails, когда вам нужно передать оба параметра и html_options), например:
someFunction({:arg1 => value1, :arg2 => value2}, {:arg3 => value3})
, который будет передаваться в двух хешах (интерпретатор не сможет определить, где 2 хеша были разделены, если он предоставлен самому себе, поэтому вам нужно дать ему {}, чтобы указать, что делать в этом случае)
Дополнительную информацию можно найти в главе книги «Кирка»: Подробнее о методах в разделе «Сбор аргументов хеша» внизу.