如何检查任何对象是否具有相同字段的相同数据?

发布于 2024-11-26 10:58:22 字数 139 浏览 0 评论 0原文

是否有一行甜蜜的irb代码可以检查任何对象在其字段中是否具有相同的数据?

例如,我可以查看是否有任何对象具有相同的电子邮件地址?或者,检查并查看是否有任何对象不是唯一的?

Is there a sweet irb line of code that could check is any of the Object's have the same data in their field?

For example, could I see if any of the Object's have the same email? Alternatively, check and see if any of the objects are not unique?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最单纯的乌龟 2024-12-03 10:58:22

您可以这样尝试:

使用所有实例变量作为键值对创建一个哈希,然后比较哈希:

假设您有两个对象 a 和 b:

hash_a = a.instance_variables.inject({}){|res,v| res[v] = a.instance_variable_get(v); res }
hash_b = b.instance_variables.inject({}){|res,v| res[v] = b.instance_variable_get(v); res }

if hash_a == hash_b 
  puts "equal"
else
  puts "not equal"
end

编辑

如果您正在谈论 Rails 模型那么你需要这个:

if a.attributes == b.attributes
  puts "equal"
end

You could try it this way:

Create a hash with all instance variables as key-value pairs and then compare the hashes:

Assuming you have two objects a and b:

hash_a = a.instance_variables.inject({}){|res,v| res[v] = a.instance_variable_get(v); res }
hash_b = b.instance_variables.inject({}){|res,v| res[v] = b.instance_variable_get(v); res }

if hash_a == hash_b 
  puts "equal"
else
  puts "not equal"
end

Edit:

If you are talking about Rails Models then you need this:

if a.attributes == b.attributes
  puts "equal"
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文