Please don't take anything I am saying as negative, it's really meant to be helpful.
Regardless of which language you end up with, to be successful at programming you need to be able to break down a problem into steps, then turn those steps into code that computer can understand. You are basically trying to teach the dumbest thing on earth (computer) what to do. You must therefore understand how you must phrase things (syntax) so the computer can understand it. So programming is learning to take apart a problem and turn it into a algorithm someone (or something) can follow to solve the task at hand. You don't even need a computer to learn this skill, you could draw boxes on a piece of paper, and see if someone else you know could follow those boxes to complete whatever task they represent. This is a skill you can develop, but for some people it's exceptionally difficult, because they simply don't think that way. However, if you can't break problems down into steps, you will find life difficult as a developer.
Web development is often said to be 'easy' by people who don't know what it's about (and I am not saying you fall into this category). However, working on the web is at minimum a mix of 5 different technologies (HTML, CSS, JS, Backend of Choice, DB of choice). spread over a minimum of 4 tiers (Client, Server, DB, OS). It really is one of the most complex series of interactions you will come across in development at the high level, because of all the different parts you need to have skills in.
If you really want to learn quality websites, it's a long road. Tech has a short shelf life, stuff which was common 5-10 years ago isn't around anymore. Things that weren't possible now are. Whatever you learn now, is unlikely to be what you are doing in the same way 5 years down the road (the iPhone for example, has been around less than 10 years). So the basics which you can transfer from language to language are likely of more importance than the specific language you learn then in.
Money.. is in whatever people are willing to pay you for. Some languages are more common, others pay better because they are rarer. The best advice I can give you is to spend time understanding how all the various pieces fit together, and how the web works, and starting out basic and building up. In this way you could code the back end in Ruby, then say, PHP. If you built it well, swapping them should be nearly painless. If you built them badly, you will have difficulty, and likely learn a lot about system design in the process.
I guess in closing, stick with something rather than jumping around, it's all overwhelming, you need to learn the basics of computer science, and how to apply them to problem solving. Having a portfolio is a double edged sword. yes you can show off your work, but you also show off your work. If your lacking in some basic areas, it's going to be evident to anyone hiring you for a technical position (assuming the person hiring you is a technical person themselves).