Si votre problème est que, à l'origine de hachage et la seconde les deux peuvent avoir des doubles de clés et vous ne voulez pas écraser dans les deux sens, vous pourriez avoir à aller pour un simple manuel de fusion avec une sorte de contrôle des collisions et de la manipulation:
hash2.each_key do |key|
if ( hash1.has_key?(key) )
hash1[ "hash2-originated-#{key}" ] = hash2[key]
else
hash1[key]=hash2[key]
end
end
Évidemment, c'est très rudimentaire et suppose que hash1 n'a pas toutes les clés appelé "hash2 d'origine-que ce soit" - vous aurez peut-être mieux de simplement ajouter un nombre à la clé de sorte qu'il devient key1, key2 et ainsi de suite jusqu'à ce que vous frappez sur une qui ne l'est pas déjà dans hash1. Aussi, je n'ai pas fait de rubis pour quelques mois donc ce n'est probablement pas syntaxiquement correct, mais vous devriez être capable de comprendre l'essentiel.
Sinon redéfinir la valeur de la clé, comme un tableau afin que hash1[key] renvoie la valeur d'origine de hash1 et la valeur de hash2. Dépend de ce que vous voulez que vos résultats soient vraiment.