Почему бы не откат этой транзакции, если даже один создать! потерпит неудачу? Это в контроллере, если это имеет значение.
def process_photos(photos)
ActiveRecord::Base.transaction do
begin
photos.each do |photo|
Photo.create!(creator_user: @user, buyer: @buyer, url: photo['url'])
end
rescue
raise ActiveRecord::Rollback
end
end
end
Я явно отправляю массив с некоторыми плохими записями. Хорошие создаются, а плохие - нет, но мне нужно все, чтобы откат, если даже один не удается.
Здесь мой rspec-тест (передача json-массива фотографий) и его увеличение.
expect { post :create, json }.not_to change(Photo, :count)