可能重复:
如何比较两个哈希值?
我有两个红宝石哈希(基本上是模型),我试图找到它们之间的差异,一个是对象的旧实例,另一个具有分配给某些属性的新值.我正在尝试确定哪些键已经更改,但似乎没有任何内置于Hash中的内容.我可以想到一些蛮力的解决方案,但想知道是否有一个优雅的解决方案.
理想情况下,我需要能够采用两个哈希:
element1 = {:name => "Original", :description => "The original one!"}
element2 = {:name => "Original", :description => "The new one!"}
Run Code Online (Sandbox Code Playgroud)
并能够比较/区分它们并得到像这样的东西:
{:description => "The new one!"}
Run Code Online (Sandbox Code Playgroud)
现在,我真正想到的是在一个哈希中迭代键并将该键的值与第二个哈希中的相应键进行比较,但这似乎太强暴了.
有任何想法吗?非常感谢!
我有2个实例对象:@original_files和@ version2_files
我想检索@original_files中找到但在@ version2_files中找不到的元素.
代码如下:
<% @original_files.each do |original_file| %>
<% @version2_files.each do |ver2_file| %>
<% if original_file.name == ver2_file.name%>
<%= original_file.name %> is common to both sets
<% break %>
<% else %>
<% end %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮我弄清楚如何找到@original_files中找到的元素,我将不胜感激.
谢谢