Preheat the oven 180˚C / 350˚F
In a large pot or deep skillet fry the diced onion in the oil over a medium heat for 5 minutes.
Turn the heat up and squeeze the sausage meat from the casings into the pan. Cook, breaking up the meat up with a wooden spoon, for 5-6 minutes or until browned and just cooked through.
Add the minced garlic and diced peppers and cook for 1 minute.
Stir in the tomato paste and cook for a minute, then add the wine and simmer for 2 minutes until mostly evaporated.
Pour in the the beef stock and crushed tomatoes. Add the dried oregano and season with salt and black pepper.
Bring to a boil, then turn the heat down and simmer gently for 15 minutes, until thickened.
Meanwhile, cook the pasta in a large pan of boiling salted water according to packet directions, MINUS one minute. Drain, reserving 240ml of the pasta cooking water.
Mix the cooked pasta with the sausage ragu, torn basil leaves, baby spinach and 120ml of the pasta cooking water. If it seems dry add a little more of the pasta water.
Transfer to a 9 x 13 inch (22 x 33cm)oven proof dish and sprinkle over the grated mozzarella and parmesan.
Spray a piece of foil with a little oil, then cover the pasta with the foil, oil side facing down. (This helps stop the cheese from sticking to the foil).
Bake for 20-25 minutes, then remove the foil and bake for 10 minutes until the cheese is golden and bubbling.
Stand for 5 minutes, then serve.