So here is your problem: you're trying to figure out what you need right now. This is just about the worst thing you can do strategically. In your defense, this is a very common mistake (more common on the NA servers than EU and KR, but it happens there too). Instead of trying to out play your opponent, you're trying to out think your opponent, and that would work really well if Starcraft was chess.
Starcraft is not chess...
I could give you a long explanation of the differences between the two (like the asynchronous knowledge problem, or how terrain plays an important role, or the perennial Macro vs Micro), but ultimately its going to boil down to the simple fact that: turn based and real time are completely different kinds of games.
So let's back up an examine all the things you did wrong:
I usually block my ramp with 3 roaches
Here is what I read:
I went 1 base (as Zerg) Roach play to delay a 2-3 Gate Protoss. The issue with this kind of one base play is that you're sacrificing a very large macro advantage. Since a Zerg's production is proportional to the number of Hatcheries, any sort of one base play means that you're on one Hatch or your second Hatch isn't doing double duty as a drop off point for minerals. In either case that's a sacrifice right there.
as I am expanding and getting a lair
So you went one base Roach play into... expand. Here is the issue with that. You made a very large Macro sacrifice to go Roaches off of one base, and usually a player does this because they want to be aggressive (a reasonable reason to make a sacrifice), but you didn't. Instead, after making that sacrifice you decided it was time to invest in your Economy and Tech. This sort of makes that earlier sacrifice meaningless. You essentially set yourself back for no reason.
and getting a lair
Its also worth noting that if you're investing in these two things at the same time, you're not going to have the economy to be able to also produce units. The reason many Zergs go for an early expansion but a late lair is that the cost of a Lair is very high for very little benefit (the Lair itself doesn't actually get you anything, just the ability to research/build new things). Now the things that depend on it are powerful, but you're not going to see that payoff for a long time, so if you're facing early pressure its often worth it to stay on Roach/Ling longer.
Now I don't know why you're making all these mistakes, but I'm willing to guess the real problem you're having is dealing with early Zealot pressure (which is why you're going one base Roach). So I guess my advice to you is:
WORK ON YOUR EXECUTION
I honestly can't say this enough. If you're losing to some crazy early pressure its usually not because you built the wrong unit. Starcraft is not a game of Rock/Paper/Scissors. If you're losing early, its because you're getting out played. You need to work on your execution, clear out all the extra time where your units are waiting around doing nothing, and you'll find that all of a sudden this early play is actually really easy to deal with. It's almost like magic (if working hard and training is considered magic...).
Pick a good build (like 14gas, 14pool, 18 expand), drill it down, get good at it.
Once you have that mastered, those early Zealots will fall easily, and when he does that Stalker push (I'm assuming Blink stalkers) you'll find yourself with an 60 food army and the situation will become laughable. You'll wonder why anyone would ever attack with 15 stalkers!
PS. I once upon wrote a decent answer to Zerg's dealing with a 4 Gate, not shockingly it reads very closely to this answer. It might be worth looking at.