Некоторая ошибка в методах Array похожа на compact!, reject!, flatten!, uniq! return nil, если никаких изменений не было сделано:
[1,[2]].flatten!
# => [1, 2]
[1,2].flatten!
# => nil
[1,[2]].flatten
# => [1, 2]
[1,2].flatten
# => [1, 2]
[1,2,nil].compact!
# => [1, 2]
[1,2].compact!
# => nil
[1,2,nil].compact
# => [1, 2]
[1,2].compact
# => [1, 2]
Если они сделали это таким образом, должна быть причина. Любые идеи, что это может быть?