Ruby on Rails won't make you a better coder.
Ruby on Rails won't deliver a bug-free project.
Ruby on Rails won't ship your release on time.
Ruby on Rails is not a silver bullet.
I love Ruby on Rails.
I can work faster, more reliably, using "cool" technologies like Unix and Macs and get more done with less grief than any other technology I have ever used.
But Rails is not a silver bullet.
It is still possible to screw things up. Ugly code, buggy sites, slow applications. Rails may make it easy to do things the "right way" but old habits die hard.
Ultimately, what you need, more than anything, is a pervasive set of automated tests. And it's easier to have a pervasive set of tests if you write them before you write your code.
Why is this important?
Tests give you confidence that the code you just wrote, over here, does not break the code you wrote last month, over there.
Tests give you confidence that the complex, interactive web page that you wrote does not break when you decide to change the way that it works.
Tests give you the ability to go back and tidy up that code that was written at 4:59 on a Friday afternoon - turning it from ugly to beautiful.
Tests become a living, breathing specification of your client's requirements. Why oh why did we write that code that way? To make sure that "test_customer_order_value_must_not_be_negative" always passes.
So, if you're just starting out with Rails, please bite the (silver) bullet and write those tests, unit, functional and, if necessary, integration. It may seem to slow you down today but you will not regret it tomorrow.