Based on my experience, I'd say that errors you get help you with learning about languages that make those errors evident. I learned about recursion before I learned about getting the compilers happy, for instance.
It's funny though that I can count Python as one of the languages that I've barely used and learned simply because I was never too fond of it.
Anyways. I think Ruby is a fine language as it resembles basic and doesn't demand ";" and parentheses, and it also has great OO support which helps with the documentation and even IDE support. With name completion, for example. Methods in Ruby are very straightforward and control-flow structures are plenty capable in Ruby. Not having to declare variables can also help, and Ruby does report some errors quite handily.
Cheers.
I agree, however, that foundational skills matter a lot. That's why statically typed languages might be better for learning to program, because they lay a foundation for understanding types.