我正在使用Ruby 1.8.7版本,需要比较两个哈希值。这两个哈希值实质上是模型的属性。哈希A小于哈希B,并且哈希B具有哈希A的所有属性,还有一些我不关心的额外属性。我的总体目标是查看A元素是否与B相应元素相同。例如:
@hash_a = {:cat => 'Bubby', :dog => 'Gizmo'}
@hash_b = {:cat => 'Bubby', :dog => 'Gizmo', :lion => 'Simba'}
@hash_a == @hash_b
#=> true
现在情况比那要稍微复杂一些,因为这些字段并不完全匹配,尽管它们引用了相同的信息。
@hash_a = {:cats_name => 'Bubby', :dog => 'Gizmo'}
@hash_b = {:cat => 'Bubby', :dog => 'Gizmo', :lion => 'Simba'}
@hash_a == @hash_b
#=> true
我正在开发一个流程,用于比较两个匹配的项目,如果字段已更改,则更新它,并仅在更改后更新。如果找不到匹配的项目,则创建一个新项目。不能更改哈希本身的名称。目前,我只是在私有方法中比较每个字段,以确定它们是否相等。
return hash_a[:cat] == hash_b[:cats_name] && hash_a[:dog] == hash_b[:dog]
我感觉必须有更好的方法,我正在寻找比这更快、更优美的东西。