J'utilise ruby 1.8.7 et j'ai besoin de comparer deux hachages que j'ai, qui sont essentiellement les attributs d'un modèle. Hash A est plus petit que Hash B, et Hash B possède tous les attributs de hash A, plus quelques attributs supplémentaires dont je ne me soucie pas. Mon objectif principal est de voir si les éléments de A sont les mêmes que les éléments respectifs de B. Ainsi, par exempleComparer deux hachages similaires en ruby
@hash_a = {:cat => 'Bubby', :dog => 'Gizmo'}
@hash_b = {:cat => 'Bubby', :dog => 'Gizmo', :lion => 'Simba'}
@hash_a == @hash_b
#=> true
Maintenant, il devient un peu plus compliqué que cela, car les champs ne correspondent pas complètement , même si elles référances la même information
@hash_a = {:cats_name => 'Bubby', :dog => 'Gizmo'}
@hash_b = {:cat => 'Bubby', :dog => 'Gizmo', :lion => 'Simba'}
@hash_a == @hash_b
#=> true
Qu'est-ce que je travaille est un processus qui compare deux éléments correspondants, il met à jour si les champs ont changé, et seulement si elles changé. Ou crée un nouvel article s'il ne trouve pas un article correspondant. Changer les noms du hachage lui-même n'est pas une option. Actuellement, je ne fais que comparer chaque champ dans une méthode privée pour voir s'ils sont égaux. Je pense qu'il doit y avoir un meilleur moyen, je suis à la recherche de quelque chose de plus rapide et plus élégant que celui-ci.
Qu'essayez-vous de réaliser? Simplicité du code de comparaison? Efficacité/vitesse? – GreyCat