Preheat the oven to 400 degrees Fahrenheit (200 degrees Celsius/180 degrees fan). Wash and chop the eggplants into ½-inch cubes. Line a large baking sheet with tinfoil.
Put the chopped eggplant in a large mixing bowl and drizzle over olive oil to coat the eggplant (the eggplant will absorb a good amount of oil, but that's okay -- just make sure you've covered it as well as possible). Season with salt and pepper and spread the eggplant in a single layer on to the lined baking sheet.
Slide the baking sheet into the oven and roast the eggplant for 10 minutes, then remove the baking sheet from the oven and turn the eggplant cubes over with a wooden spoon. Return the eggplant back to the oven and roast for another 5-10 minutes until the eggplant is very soft.
At this point you can either let the eggplant cool completely and then store it for a later time, or proceed to the next step.
Finely dice the onion and mince the garlic. Cut the basil into fine strips and set aside.
Heat 3 tablespoons of oil in a saute pan over medium-low heat. Add the onion and cover, stirring occasionally, until the onion is soft and translucent. Add the garlic and saute for another minute or so.
Heat a second large pot of salted water to boil. Add the pasta and cook according to the package instructions.
Add the tomatoes to the onion and garlic mixture in the saute pan, season well and bring to a steady simmer. Cook for about 20 minutes until the tomatoes are broken down and saucy.
Add the eggplant, stir well and let simmer for another 1-2 minutes before removing from heat.
Before removing the pasta from the stove to drain, use a ladle to scoop out a cup or so of the pasta cooking water and reserve in a heatproof bowl. Drain the pasta and immediately toss with the eggplant and tomato sauce. If the sauce feels too chunky or thick, add a little of the pasta cooking water to thin the sauce a bit.
Divide the pasta between plates and serve with the basil ribbons and a spoonful of creme fraiche.