Thanks for this! I was reading the documentation before and must have missed it, http://guides.rubyonrails.org/command_line.html is what I read. Your list is helpful though thanks. I'm not looking at building a photo viewer it was more just an example that popped into my head.

So in terms of knowing which generate command to use based on what you're building is it just a case of read about each one I guess?

Read about each one so that you know what's available, but remember that these commands are just shortcuts for things that you can do manually. They won't help you choose how to implement things.

If you're already thinking 'I need a controller for this' then a generator is going to come in handy.

I commonly user the controller, model, and migration generators. That's about it. Scaffold is useful when you're getting started but you'll quickly find that you don't need all the files it generates and it's often more appropriate to generate the separate pieces as you need them.