Вам необходимо назначить их массиву.В тот момент, когда ваш код сидит, вы делаете пересечение, но на самом деле вы не назначаете их массиву.Вам нужно добавить туда операторы =.
Вот пример установки:
>> x = [ 1, 1, 3, 5 ]
>> y = [ 1, 2, 3 ]
Это то, что вы делаете прямо сейчас:
>> x & y
=> [1, 3]
>> x
=> [1, 1, 3, 5]
Это то, куда нужно идти:
>> x &= y
=> [1, 3]
>> x
=> [1, 3]
Таким образом, это должно сделать работу:
array_of_users = []
array_of_users &= @zip_ids if !@zip_ids.empty?
array_of_users &= @sex_ids if !@sex_ids.empty?
array_of_users &= @interest_ids if !@interest_ids.empty?
array_of_users &= @age_ids if !@age_ids.empty?
Надеюсь, это поможет - Sidenote: Я сделал все это в IRB (интерактивная рубиновая оболочка).Это твой друг.:)