To people not familiar with Rails, it will look like there are a lot of magic and wizardry involved with developing web apps and APIs with Rails. A lot of trusting the framework to work. Running a couple of commands in the terminal will result in a (very basic) CRUD web app that can be easily deployed. A coder can easily develop an application without understanding what is happening. I wanted to know how it is put together and how it all works together. I was curious about the inner workings of Rails.

I wanted to get a better understanding of the inner working of Rails. By understanding how Rails is structured and designed, I felt like I can fully utilize most of the features of the framework and be more productive at developing software. In addition, I wanted to improve my knowledge in software architecture. I can learn some design patterns and architectural patterns that I can apply in other projects or tech stack.

Luckily I found a course online that helped with that. This blog series and accompanying work is based on the knowledge I gained through following along the Owning Rails course and implementing features that were not included in the course.

Some of the things I learned by going through this exercise:

  • Opening up a ruby gem.
  • Rails is made up of multiple gems. ActiveRecord, ActiveModel, ActiveSupport, Railties, ActionPack, Action View, ActionCable, ActiveStorage, and many more.
  • Various design patterns.
  • Dynamically building SQL queries.
  • Various Ruby specific features.
  • Request and response cycle.
  • Improved at debugging errors.
  • Many moreā€¦

If you are curious about the inner workings of Rails please follow along and read my other posts in the Rebuilding Rails series.