Вы уверены, что в БД создается только один пользователь? Этот код выглядит нормально, но @user
будет ссылаться только на один экземпляр, потому что он будет переустанавливаться на каждой итерации массива.
Если вы хотите получить массив пользователей в конце, лучший способ сделать это - добавить их в массив (для этого вы также можете использовать inject
):
@users = []
@emails.each do |email|
@users << User.create(:email => email)
end
Другая причина может быть в том, что проверки делают запись недействительной. У вас есть какие-либо проверки по электронной почте? Если вы хотите, чтобы запись взорвалась, если запись недействительна, используйте save
или create
с ударом (!) ...
@emails.each do |email|
User.create!(:email => email)
end