Ruby on Rails jest to framework open source, często nazywany RoR lub po prostu Rails. Służy do szybkiego tworzenia aplikacji webowych. Stworzył do głównie duński programista David Heinemeier Hansson. Został napisany w języku Ruby z użyciem architektury MVC (ang. Model-View-Controller).
Każda wymieniona część może zostać zainstalowana oddzielnie. Może to się odbyć chociażby za pomocą menedżera pakietów RubyGems. Dystrybucję Rails tworzy także konsolowy program rails, który generuje drzewo katalogów nowego projektu.
Na odpowiednim serwerze oparte jest działanie aplikacji, która została napisana z użyciem Rails. Poza standardowym serwerem, który opiera się na bibliotece WEBrick (używanym jednak zwykle podczas tworzenia aplikacji) dostępny jest obecnie serwer Mongrel. Raz uruchomiony serwer przypisuje nadchodzące żądania (requests) odpowiednim kontrolerom i na podstawie ich działania zwraca do klienta odpowiedź (response).
Serwer Rails może działać samodzielnie (bardzo rzadko stosowane – jeden Mongrel potrafi obsłużyć jedno żądanie naraz) lub być ukryty za innym serwerem HTTP jak Apache, Lighttpd czy Nginx. Wówczas serwer zewnętrzny równoważy obciążenie wszystkich serwerów aplikacji. Phusion Passenger jest innym rozwiązaniem, które zdobywa coraz więcej zwolenników. Znany jest on także jako mod_rails lub mod_rack. Dostępny jest on dla Apache'a (jako moduł) i Nginxa (wymaga wkompilowania w serwer). Zaletą rozwiązania jest jego automatyzacja – po odpowiednim ustawieniu ścieżek w pliku konfiguracyjnym, Passenger odpowiednio wywołuje kolejne wątki aplikacji w ramach potrzeb.
Rails opiera się o architekturę MVC. Po wyświetleniu widoku (w tym przypadku wygenerowanej strony HTML) klient wysyła do aplikacji żądanie - klikając odpowiedni link na stronie lub wypełniając formularz. Żądanie jest przyjmowane przez kontroler, który generuje odpowiedź w formie widoku wysyłanego do klienta (najczęściej kontroler w celu wygenerowania odpowiedzi pobiera dane z modelu, który w Rails implementowany jest jako relacyjna baza danych).
Rails może współpracować z różnymi rodzajami baz danych. Jedyny warunek, jaki tutaj zachodzi, to istnienie odpowiedzialnej za jej obsługę biblioteki dla Ruby oraz obsługa danej bazy przez ActiveRecord - adaptery wszystkich popularnych typów baz danych były zawarte w dystrybucji ActiveRecord, jednak począwszy od 2.2 wymagają osobnej instalacji przez RubyGems.
Kod Rails powinien współpracować ze wszystkimi typami danych - w taki sam sposób. Ma to miejsce wówczas, gdy programista nie użyje jawnie specyficznych dla danej bazy konstrukcji SQ L. Wbudowany mechanizm migracji (ang. migrations), który posiada Rails, pozwala tworzyć, zmieniać i kontrolować schemat tabel w bazie danych, niezależnie od jej typu, używając jedynie kodu Ruby.
Dla każdego - małych firm, organizacji non-profit czy też bardzo dużych podmiotów. Może być używany jako narzędzie tworzenia praktycznie każdego rodzaju aplikacji internetowej, czy będzie to oprogramowanie do współpracy online, tworzenia społeczności, e-commerce, zarządzania treścią czy statystyk.