Riding the Rails

Posted by kristinreddington on June 13, 2018

I smile when I think back to creating my Sinatra project, B.R. (Before Rails) time - oh, how times were simple yet unscalable compared to the world of Ruby on Rails. I entered Rails in naivety, thinking I would just switch some syntax and conventions around and transition to the Rails track with greater ease than going from my old 2000 Honda Civic to my 2017 Volkswagan Passat with an upgraded engine and Bluetooth for my convenience. However, unlike cars, frameworks require a bit more competence other than the muscle memory needed to drive any automatic car you get behind the wheel of. Lucky for drivers, we don’t need to know much about the automotive mechanics in order to be an efficient driver. As programmers, learning the technicality behind Rails magic is not only encouraged, but necessary while using this complex yet brilliant paradigm successfully.

Initially feeling like a magician that didn’t know exactly where the missing cards went up his sleeves, I began to point my wand in every which direction until miracles occured before I discovered the real magic behind Rails…there isn’t any. Going back to the basics always reminds me that the magic behind anything extraordinary is within the simple consistencies that are rarely practiced. I once heard a quote from someone that said, “If you want to be a master, master the basics. If you want to hide your secrets, put them in plain sight.” Reading the Rails guides, googling best Rails practices, and re-reading the Flatiron Readmes was the simple yet logical way I eventually felt comfortable riding the Rails without having to white knuckle my seat. I can now enjoy the ride (Thank you, Google)!

For my project, I created an app targeted towards dancers, kind of like a mock-up of Classpass, where the idea circulates around being able to sign up for a variety of different dance classes at any level. My domain includes three models: Users, Lessons, and a join-table of Bookings. Users can create many bookings and edit or cancel bookings through nested recources. Dancers can login with Facebook using OmniAuth or create an account from scratch. Using helper methods, querying instances within class methods and tying it all together through skinny controllers and partials really solidified my understanding that the more abstract something is created, the more scalability it has.

I leave the Rails section excited, not overwhelmed, knowing I have so much more to master with this framework, but with confirmation that there’s something enticing about Ruby and Rails. I feel proud to be an aspiring Rubyist and Rails specialist and look foward to the magic I’m about to create.