I guess one of the things that you ought to have first is some sort of version control - git, svn etc. While version control is not exclusively limited to large projects, it'll help eliminate the fear of changing something because you're afraid you might break it. If you follow good practices of creating branches to manage new features and creating snapshots that you can use as checkpoints then you have a way of managing your deployment releases.
Some other obvious aspects have been mentioned - use proper OOP, keep your code relatively simple and modular so you don't fall into a mess of nested statements/methods and the like. Focus on developing one feature at a time preferably using version control - use branching and other features that you can merge into the master branch once you've completed it. Fix your errors when you get them and try to understand why it's giving you that error. I've seen people try to 'bruteforce' their way of fixing things by writing more and more code which doesn't help at all.
One other thing that comes to mind is look up some projects on github or somewhere else to see how people manage their code. There are also podcasts and videos - ruby presentations/podcasts come to mind - that may help with info on how to manage large codebases.
Work hard and think about why your current workflow is making it hard for you to develop then change some of the habits you current have. Good luck.