Heat 1/4 cup of the canola oil in a large nonstick saute pan set over medium-high heat. Add the rice and spread it out in an even layer. Cook the rice without stirring to crisp it up, 3 to 4 minutes. Stir the rice and continue to cook until lightly browned and crispy, about 4 minutes.
While the rice is cooking, heat the remaining 3 tablespoons canola oil in a medium saute pan over medium heat. Add the onions and saute until translucent, 2 to 3 minutes. Add the ham and cook until the edges start to brown, 3 minutes.
In a medium bowl beat together the eggs and milk. Add a pinch each of salt and pepper.
Add the spinach to the rice and cook until wilted, about 2 minutes. Then add the sauteed onions and ham. Add the eggs and give it a good stir. Cook, stirring occasionally until the eggs are cooked through, 2 to 3 minutes. Season with salt and pepper. Serve immediately.
Leftover takeout white rice works great for this recipe.