Возможный дубликат:
Как сравнить два хэша?
У меня есть два рубиновых хэша (которые по существу являются моделями), и я пытаюсь найти различия между ними, один из них - старый экземпляр объекта, где другой имеет новые значения, назначенные некоторым атрибутам. Я пытаюсь определить, какие ключи изменились, но для этого не существует ничего встроенного в Hash. Я могу думать о нескольких грубых силовых решениях, но мне было интересно, есть ли там элегантное решение.
В идеале мне нужно иметь два байта:
element1 = {:name => "Original", :description => "The original one!"}
element2 = {:name => "Original", :description => "The new one!"}
И сможете сравнивать/различать их и получать что-то вроде этого:
{:description => "The new one!"}
В настоящее время все, что я действительно могу представить, это итерация через ключи в одном хеше и сравнение значения с этим ключом с соответствующим ключом во втором хеше, но это кажется слишком грубым принудительным.
Любые идеи? Большое спасибо!