Reputation: 27114
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?
Upvotes: 0
Views: 198
Reputation: 14625
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
Upvotes: 1