Ruby on Rails Fundamentals
Ruby on Rails is a web application framework written in Ruby. It organizes requests, application logic, database records, and HTML responses through conventions that reduce repeated setup.
itWeb development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Ruby on Rails is a server-side web application framework written in Ruby. A Rails application receives an HTTP request, matches it to a route, runs controller and model code, and returns a response. The framework supplies integrated libraries for database access, HTML rendering, email, background jobs, file uploads, real-time connections, testing, security controls, and deployment.
Rails is opinionated. It favors convention over configuration: predictable names and directory locations let the framework connect application parts without a separate mapping for every relationship. It also favors Don't Repeat Yourself, or DRY, so one fact has one authoritative representation. These principles reduce setup, but they make Rails conventions part of the programming model rather than optional style.
The request and response path
A typical browser request crosses several layers:
- The router compares the HTTP method and path with the routes in
config/routes.rb. - A matching route selects a controller action and extracts any route parameters.
- The controller reads permitted input, coordinates application work, and chooses a response.
- Models and other Ruby objects apply business rules. Active Record models can read or change relational database rows.
- For an HTML response, Action View evaluates a template and layout to produce the response body.
- Rails sends an HTTP status, headers, and body back through the web server.
A controller does not need to render HTML. It can redirect the client, return JSON, stream data, or send an empty status response. Rendering creates a response from the current request. Redirecting sends a 3xx response that asks the client to make another request.
Model, view, and controller responsibilities
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://rubyonrails.org/
Supports
- Rails definition
- integrated full-stack framework
- official project homepage
- https://guides.rubyonrails.org/index.html
Supports
- Rails framework components
- official guide inventory
- model view controller architecture
- https://guides.rubyonrails.org/getting_started.html
Supports
- Rails philosophy
- application structure
- MVC
- generators
- models
- migrations
- console
- testing
- security
- deployment
- https://guides.rubyonrails.org/routing.html
Supports
- HTTP method and path matching
- controller destinations
- parameters
- resource routes
- route helpers
- https://guides.rubyonrails.org/action_controller_overview.html
Supports
- Controllers
- request parameters
- Strong Parameters
- sessions
- cookies
- filters
- responses
- https://guides.rubyonrails.org/layouts_and_rendering.html
Supports
- Views
- templates
- layouts
- rendering
- redirecting
- response status and body
- https://guides.rubyonrails.org/active_record_basics.html
Supports
- Active Record pattern
- ORM
- model and table conventions
- CRUD
- validations
- callbacks
- migrations
- associations
- https://guides.rubyonrails.org/active_record_migrations.html
Supports
- Versioned schema changes
- migration execution and rollback
- production migration concerns
- https://guides.rubyonrails.org/active_record_validations.html
Supports
- Model validations
- validation lifecycle
- uniqueness race and database constraint requirement
- https://guides.rubyonrails.org/association_basics.html
Supports
- belongs to
- has one
- has many
- through associations
- join models
- keys
- https://guides.rubyonrails.org/active_record_querying.html
Supports
- Relations
- query construction
- eager loading
- locking
- transactions
- SQL inspection
- https://guides.rubyonrails.org/active_job_basics.html
Supports
- Active Job
- queue adapters
- enqueue and worker path
- retries
- testing
- job arguments
- https://guides.rubyonrails.org/security.html
Supports
- Sessions
- CSRF
- SQL injection
- cross-site scripting
- redirects
- secrets
- authentication and authorization boundaries
- https://guides.rubyonrails.org/testing.html
Supports
- Model
- controller
- request
- job
- mailer
- channel
- integration
- and system testing
- https://guides.rubyonrails.org/configuring.html
Supports
- Environments
- eager loading
- logging
- caching
- middleware
- generators
- framework configuration
- https://guides.rubyonrails.org/autoloading_and_reloading_constants.html
Supports
- Zeitwerk
- constant and file naming
- reloading
- eager loading
- https://guides.rubyonrails.org/command_line.html
Supports
- rails new
- server
- console
- runner
- generate
- routes
- database and test commands
- https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
Supports
- Framework upgrade process
- test coverage
- deprecations
- incremental compatibility
- https://www.rubyonrails.org/releases
Supports
- Rails release dates including version 1.0
- https://rubyonrails.org/2007/12/7/rails-2-0-it-s-done
Supports
- Rails 2 date
- resource routing
- route inspection
- CSRF protection
- https://rubyonrails.org/2024/11/7/rails-8-no-paas-required
Supports
- Rails 8 release date
- Kamal 2
- Thruster
- Solid adapters
- deployment direction
- https://guides.rubyonrails.org/3_0_release_notes.html
Supports
- Rails 3 router
- Bundler
- chainable query API
- architectural integration
- https://guides.rubyonrails.org/4_0_release_notes.html
Supports
- Rails 4 Strong Parameters
- Turbolinks
- Russian doll caching
- https://guides.rubyonrails.org/5_0_release_notes.html
Supports
- Rails 5 Action Cable
- API applications
- test runner
- https://rubyonrails.org/2018/4/9/Rails-5-2-0-final
Supports
- Rails 5.2 date
- Active Storage
- encrypted credentials
- Redis cache store
- https://rubyonrails.org/2019/8/15/Rails-6-0-final-release
Supports
- Rails 6 date
- Action Mailbox
- Action Text
- multiple databases
- parallel testing
- Zeitwerk
- https://rubyonrails.org/2021/12/15/Rails-7-fulfilling-a-vision
Supports
- Rails 7 date
- import maps
- Hotwire
- Turbo
- Stimulus
- no-Node default
- https://guides.rubyonrails.org/8_0_release_notes.html
Supports
- Rails 8 Kamal 2
- Thruster
- Solid Cable
- Solid Cache
- Solid Queue
- Propshaft
- authentication generator
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the Awesome Ruby list
- https://github.com/markets/awesome-ruby
Supports
- Discovery of Brakeman
- RSpec Rails
- Sidekiq
- ViewComponent
- ActiveAdmin and wider Ruby and Rails ecosystem
- https://brakemanscanner.org/docs/
Supports
- Rails static security analysis and finding workflow
- https://rspec.info/features/8-0/rspec-rails/
Supports
- RSpec support for Rails models
- requests
- controllers
- views
- helpers
- mailers and routing
- https://sidekiq.org/
Supports
- Redis-backed Ruby job processing
- workers
- queues and retries
- https://viewcomponent.org/guide/getting-started.html
Supports
- Reusable testable Rails view components
- generators
- templates and rendering
- https://activeadmin.info/
Supports
- Rails administration interfaces built around Active Record resources
- https://www.jetbrains.com/ruby/
Supports
- Rails-aware IDE navigation
- debugging
- testing and database tools
- https://www.heroku.com/ruby/
Supports
- Managed Rails runtime
- build and migration workflow
- web and worker processes
- https://render.com/docs/deploy-rails-8
Supports
- Managed Rails deployment
- web service
- database and worker integration
- https://fly.io/docs/rails/getting-started/
Supports
- Rails application deployment on Fly Machines and fly command workflow
- https://www.hatchbox.io/
Supports
- Rails deployment management on user-selected servers
- processes
- databases and logs
- https://www.honeybadger.io/for/ruby/
Supports
- Ruby and Rails exception monitoring and application diagnostics
- https://www.appsignal.com/ruby
Supports
- Rails error
- performance and host monitoring
