I flatly refuse to do anything by the book, so when it comes to rust removal I'm a real cheapskate (as with most things).
Naval Jelly is the ok, and there's a host of other products available, but all I do is pop into the lav and grab the pot pourri scented Vixol 'Pink', slip on my rubber gloves and safety specs and splash it all over. Use a sacrificial sponge and watch the rust simply dissolve. Flush this all off with some warm soapy water and then rinse that off. Dry with a rag and then oil immediately as it'll rust again before you know it. this'll leave a flat, not so sexy finish, but if you're painting then so what. Obviously you'll need to get the oil off before painting.
The active ingredient in the toilet cleaner is hydrochloric acid at 15%, so obvious it's not the safest way to do it, and it stinks so do it outside.
This is also the same way that I treat my old nuts and bolts before I send them off to the zinc plating shop. They come back looking like new.