While going through the job search process in early 2016, I decided to add some additional skills to my resume. One of the tools that was recommended to me was RoR. It is an open source Model-View-Controller (MVC) based web application framework, and was marketed as an available free tool on a hosting site (www.register.com) that my family uses. I decided to develop an application “Homemade Hummus” using RoR, to share some of my Mom’s best hummus recipes.
Unfortunately, register.com only supported a very old version of RoR, so I won't be publishing the app to the web. This page will share my experiences and provide a short demo.
The development stack I installed on my Mac OS 10 environment included Rails 4.2 and MySQL 5.7, and I also utilized Git and Homebrew during installation and development. I referenced tutorial information about RoR at www.tutorialspoint.com, which was very helpful in understanding the basics of the framework and the various tools needed. One of the first things you learn about RoR is the standard framework folder structure utilized, and is shown here.
The value of RoR is that it generates a lot of the plumbing that is necessary but tedious to work with. I used MySQL Workbench to create my table structures, but RoR can do that for you using the Migrations capability. The Scaffolding features of RoR then does a lot of the complicated CRUD (create, read, update, delete) for database records, and generates the skeleton M-V-C modules. The simple table info I used for this application is shown here.
Another key aspect of RoR is the concept of Ruby Gem objects that can be included in your application to help add features, to keep you from having to re-create functions. I used the Paperclip tool to upload images into my RoR application. All testing was done locally using the WEBrick web server delivered in the RoR installation package. This screen shows the basic application form used for CRUD actions.
I’ve created a short video demo of my RoR application, in case you would like more details about my experience.