Ruby on Rails maakt gebruik van een model-view-controller principe. Het model is vaak een tabel in een database die je met een bepaalde klasse kunt koppelen aan de hand van de naamgeving. De controller is een klasse die de applicatielogica bevat en de operaties definieert die gebruiker kan aanroepen.
Tijdens het ontwikkelen wordt de informatie weergegeven in de view modus of om invoer van gebruikers te verwerken. De view is de definitie in HTML van een controller operatie en kan ook een XML-definitie of Javascript operatie bevatten.
Een voorbeeld van een Rails operatie:
De webserver ontvangt een URL en deze wordt vertaald in een controller en een operatie. Zogenaamde routering.
Er wordt een controllerobject gecreëerd. Van dit object wordt de opgegeven controlleroperatie aangeroepen.
Gedurende een controlleroperatie wordt een modeloperatie uitgevoerd. Meestal wordt er een transactie uitgevoerd op een database.
De controller verwerkt eventueel het resultaat van het model.
De view, gelijk aan de naam van de controlleroperatie, wordt gerenderd (HTML generatie).
De gerenderde (HTML) inhoud wordt verstuurd naar de webbrowser.
Leuk om te weten is dat bekende applicaties als DigiD, Groupon en NPO Gemist voor de Iphone zijn geschreven in Ruby on Rails. Ook Twitter is deels geschreven in RoR.