Я думаю, что есть хотя бы одна ошибка не в том, как вы используете collect
, а в логике, которую вы пишете в последних строках, когда проходите массив baza_managers
.
При этомВ коде условие respondent_emails.include?(moi)
всегда будет ложным, поскольку respondent_emails
- это массив адресов электронной почты, но moi
- это массив, подобный ["vadasd@test.test.com", 8]
, поэтому они никогда не будут совпадать.
Я думаю, что эта ошибка заставила вас совершитьошибка в строке:
Respondent.create(:email => moi, :user_id => 1, :respondent_group_id => moi)
Поскольку эта строка будет оцениваться как (например):
Respondent.create(:email => ["vadasd@test.test.com", 8], :user_id => 1, :respondent_group_id => ["vadasd@test.test.com", 8])
Что, вероятно, не то, что вы хотите.
Наконец, я бы посоветовал вам прочитать руководство по отладочным рельсам , я часто использую отладчик, чтобы выяснить, где и в чем проблема такого рода кода и ошибок.