One of the main advantages in Ruby on Rails is as I mentioned in my earlier blog post, is not re inventing the wheel. For example for the authentication in a web app, you can use devise gem and have the full functionality of it in a few seconds. So what is the use of doing authentication from the scratch?
If you are a new developer to Ruby on Rails, I highly suggest that coding the authentication from the scratch. RailsCast have a very good tutorial on this. By doing this you can have a full understanding of how ruby on rails works. If you are a seasoned developer and know enough you can use devise which also has lots of features.
In my project for Learn IT, Girl I first did the authentication part with devise. Then I got that I don’t really get a full understanding and then I followed the above tutorial and learned to make it from the scratch. It gives me the flexibility to change the system as I wish and most of all given me a good understanding on how Ruby on Rails works.