Heat the oil in a pan over a medium heat and sweat the onion gently until soft and starting to caramelize. Reduce to a low heat, add the tomatoes and simmer very gently for 1 hour, breaking up the tomatoes with a wooden spoon as they cook. Cook the fusilli in a large pan of slightly salted boiling water until al dente. While the pasta is cooking, mix the ricotta with a ladleful of the cooking water. Add a little tomato sauce and grated parmesan, and mix to a smooth cream. Drain the pasta and add the ricotta mixture and the remaining tomato sauce. Season with salt and black pepper. Mix well, sprinkle with the chopped basil and more grated parmesan, and serve.