Ruby on Rails
roadmap.sh: https://roadmap.sh/ruby-on-rails
Suggested path through the Ruby on Rails nodes. Each node links to its lesson when written.
Nodes
Ruby language fundamentals
- Ruby syntax and basics
- Variables and scope
- Data types (String, Symbol, Numeric)
- Arrays and Hashes
- Ranges
- Conditionals and control flow
- Loops and iterators
- Methods and arguments
- Blocks, Procs and Lambdas
- Classes and objects
- Modules and mixins
- Inheritance
- Metaprogramming
- Exception handling
- Gems and Bundler
- RubyGems ecosystem
Prerequisites
- HTML and CSS
- JavaScript fundamentals
- HTTP and how the web works
- Relational databases and SQL
- Git and version control
- Command line basics
Rails fundamentals
- What is Rails / convention over configuration
- Installation and setup
- Rails directory structure
- Rails CLI and generators
- Rake tasks
- Environments (development, test, production)
- Bundler and Gemfile
- Credentials and secrets
MVC architecture
- MVC pattern overview
- Request/response lifecycle
- Routing
- Controllers and actions
- Strong parameters
- Views and layouts
- ERB templating
- Partials
- Helpers
- Models
Active Record
- ORM concepts
- Migrations
- Schema and schema.rb
- CRUD operations
- Validations
- Callbacks
- Associations (belongs_to, has_many, has_one)
- has_many :through and HABTM
- Polymorphic associations
- Query interface and scopes
- N+1 queries and eager loading
- Database indexes
- Transactions
Routing
- RESTful routes and resources
- Nested routes
- Route constraints
- Named routes and path helpers
- Namespaces and scopes
Views and frontend
- Asset pipeline / Propshaft
- Importmap and JavaScript bundling
- Hotwire (Turbo and Stimulus)
- Turbo Frames and Streams
- View components
- Forms and form helpers
- Tailwind / CSS integration
Active Support and libraries
- Active Support core extensions
- Action Mailer
- Active Job and background processing
- Action Cable (WebSockets)
- Active Storage (file uploads)
- Action Text (rich text)
- I18n and localization
APIs
- Building JSON APIs
- API-only mode
- Serializers (Jbuilder, AMS)
- Versioning APIs
- CORS
Authentication and authorization
- Sessions and cookies
- Devise
- has_secure_password
- OmniAuth
- Pundit / CanCanCan
- Authorization patterns
Testing
- Minitest
- RSpec
- Fixtures and FactoryBot
- Model, controller and system tests
- Capybara
- Test coverage
Security
- CSRF protection
- SQL injection prevention
- XSS prevention
- Mass assignment protection
- Brakeman and security scanning
Performance and caching
- Fragment and Russian-doll caching
- Low-level caching
- Redis and Memcached
- Database query optimization
- Bullet gem
Deployment and ops
- Puma and web servers
- Environment configuration
- Kamal / Docker
- CI/CD pipelines
- Logging and monitoring
- Background workers (Sidekiq, Solid Queue)
Resources
See resources.md.
Project ideas
- Build a multi-tenant SaaS blog platform with Devise auth, Pundit authorization, and Hotwire-driven live updates.
- Create a JSON API backend for a task manager with versioned endpoints, Sidekiq background jobs, and RSpec request specs.
- Build a real-time chat app using Action Cable, Turbo Streams, and Active Storage for image attachments.