dla dwóch tablic A i B: A i B mają tę samą zawartość, jeśli:
(A-B).blank? and (B-A).blank?
lub możesz po prostu sprawdzić:
((A-B) + (B-A)).blank?
Również, jak sugeruje @ cort3z, to rozwiązanie als0 działa dla tablic polimorficznych, tj
A = [1 , "string", [1,2,3]]
B = [[1,2,3] , "string", 1]
(A-B).blank? and (B-A).blank? => true
::::::::::: EDYTOWAĆ :::::::::::::
Jak zasugerowano w komentarzach, powyższe rozwiązanie zawodzi dla duplikatów, chociaż zgodnie z pytaniem, które nawet nie jest wymagane, ponieważ pytający nie jest zainteresowany duplikatami (konwertuje swoje tablice na zestaw przed sprawdzeniem i maskuje duplikaty, nawet jeśli spojrzysz na zaakceptowana odpowiedź, przed sprawdzeniem używa operatora .uniq, co również maskuje duplikaty). Ale nadal, jeśli interesują Cię duplikaty, samo dodanie sprawdzenia liczby naprawi to samo (zgodnie z pytaniem tylko jedna tablica może zawierać duplikaty). Tak więc ostatecznym rozwiązaniem będzie:
A.size == B.size and ((A-B) + (B-A)).blank?