Journey Through Rails

Posted by Chris Ashman on June 29, 2020

My journey of learning rails was both a refresher and a gateway into something new. Rails is an web-application framework that gives us everything to create database backed web apps. On my journey, I was able to learn about the CRUD and how we utilize it to render out our views similar to how we did it in Sinatra, but so much easier. Rails magic makes controlling the database so much easier to work with since there only six things you have to worry about when creating your web app. These are controllers, helpers, models, views, routes and the database. Each of these components and the code we put into it, play a huge part in making web apps. When learning about the Lifecycle, ActiveRecord Associations, and even some easy validations increase made me aware of things things Software Engineers do to keep web applications running.

Rails is simply the Model, View, Controller with Ruby and some HTML code in it. Everything is Ruby, there is no hidden code maybe some rails magic, but nothing too wild and crazy. After doing it so many times, I remember that in my controller I need to use index, create, new, show, etc… to render out my views. All my methods in the controller need instance variables and references as well as the attributes to be able to utilize it within the code. It is similar to a video game, a player has a controller (controller) that controls the character on screen (model) and the buttons to input in commands get rendered to the screen and shows the character doing the inputted commands (views). I was also able to understand things such as layouts and partials to create different route pages and not repeat myself in code, since the last i want to do is A) copy and paste the same code over and over with little or no change at all or B) just reuse the same code for a whole block of code especially when writing forms in the views. As I proceed more into rails, I hopw to learn more about how to use rails effeciently and get the most out of making my own web apps.