It's kind of Ruby to helpfully report the typo of 5 instead of "5" only when you manage to generate a test case that exactly goes through that chain, rather than just telling you that you did a typo up front. Your customer also gets to appreciate the benefits of dynamic languages when he can't get his work done because of your "500 server error" caused by the error being detected only when he tries it.

In C# my compiler didn't let me deploy your broken code. Therefore there was never a NoMethodError thrown when my customer visited my webpage.

Result: I sleep easier and my customers are more happy.

Yay for statically typed languages.