RoR

RoR

Intermediate

A server-side web application framework written in Ruby, Ruby on Rails (RoR) is a framework, primarily helping developers build websites and applications, abstracting and simplifying repetitive tasks. 

This competency area includes understanding the RVM (Ruby Version Manager), setting up databases and working with migrations, exploring advanced active record operations, and caching, among others.  

Key Competencies: 

  1. Ruby Version Manager - Ability to install and use RVM (Ruby Version Manager) for different versions of ruby and rails. Understanding bundler, and gem versioning. 

  2. Migrations - Setting up a DB (database.yml file), resetting a DB, running specific migrations, reverting migrations. Running migrations in different environments. Dumping schema, seeding data. Understanding Referential integrity. 

  3. Active Record Advanced - Building has_many through associations, has_and_belongs_to_many associations, and polymorphic relationships.

  4. Active Record Query Interface - Being able to run advanced active record queries - Joins, left outer joins, eager loading, along with a good understanding of scopes. 

  5. Common Gems - Being able to incorporate common gems into the app for various functionality - Device, Pundit, ActiveAdmin, pry, audit.

  6. Rspec - Writing unit, controller and integration tests, and understanding of mock and stub to build effective tests, along with the ability to refactor tests.  

  7. Action Mailer & Active Job - Using an action mailer to send emails from your application and using Active Job for asynchronous processing. 

  8. Caching - Understanding of Page, Action, Russian Doll caching, SQL Caching, and other different Cache Stores. Using Redis as a cache-store.

  9. Collection & Enumerable - Understanding the effective use of different methods - find_all, group_by, lazy, inject, reduce, zip, grep. Also, understanding Regex. Knowing when to use Active Record methods as against Enumerable methods. 

  10. CI & CD - Able to create simple Continuous Integration and deployment pipelines.