para dos matrices A y B: A y B tienen el mismo contenido si:
(A-B).blank? and (B-A).blank?
o simplemente puede verificar:
((A-B) + (B-A)).blank?
También como lo sugiere @ cort3z, esta solución también funciona para matrices polimórficas, es decir
A = [1 , "string", [1,2,3]]
B = [[1,2,3] , "string", 1]
(A-B).blank? and (B-A).blank? => true
::::::::::: EDITAR :::::::::::::
Como se sugiere en los comentarios, la solución anterior falla para los duplicados, aunque según la pregunta, eso ni siquiera es obligatorio, ya que el autor de la pregunta no está interesado en los duplicados (está convirtiendo sus matrices para establecer antes de verificar y eso enmascara los duplicados e incluso si miras la respuesta aceptada está usando un operador .uniq antes de verificar y eso también enmascara los duplicados). Pero aún así, si le interesan los duplicados, solo agregar una verificación de conteo solucionará lo mismo (según la pregunta, solo una matriz puede contener duplicados). Entonces la solución final será:
A.size == B.size and ((A-B) + (B-A)).blank?