Ruby on Rails maakt gebruik van het Model-View-Controller (MVC)-principe, een ontwerpmodel dat helpt om de verschillende onderdelen van een applicatie gestructureerd en overzichtelijk te houden.
Hoe werkt het MVC-principe in Ruby on Rails?
- Model: dit vertegenwoordigt de gegevens en de bijbehorende logica. Meestal komt dit overeen met een tabel in de database. Met de juiste naamgeving kun je een tabel koppelen aan een Ruby-klasse.
- Controller: dit is de plek waar de applicatielogica zich bevindt. Hier worden de operaties gedefinieerd die gebruikers kunnen uitvoeren, zoals het ophalen van gegevens of het verwerken van een formulier.
- View: dit deel is verantwoordelijk voor de presentatie van de data. Het kan gaan om HTML, maar ook om andere formats zoals XML of JavaScript.
Hoe verloopt een operatie in Rails?
Een typisch proces ziet er als volgt uit:
- Ontvangst van een URL: de webserver ontvangt een URL en vertaalt deze naar een controller en een specifieke operatie (routering).
- Aanmaken van een controller-object: op basis van de URL wordt een object van de juiste controllerklasse aangemaakt.
- Uitvoeren van de operatie: de controller voert de specifieke operatie uit, zoals vastgelegd in de URL.
- Interactie met het model: de controller roept een modeloperatie aan. Dit kan bijvoorbeeld een databasequery zijn om gegevens op te halen of op te slaan.
- Verwerken van resultaten: de controller verwerkt het resultaat van het model en stelt deze beschikbaar voor de view.
- Rendering van de view: de view, met dezelfde naam als de controlleroperatie, wordt gerenderd. Dit genereert HTML, XML of een ander format.
- Versturen naar de browser: de gerenderde inhoud wordt naar de browser gestuurd, waar de gebruiker het resultaat ziet.
Voorbeelden van applicaties die Ruby on Rails gebruiken
Ruby on Rails wordt gebruikt voor een breed scala aan bekende applicaties, zoals:
- DigiD: een platform voor digitale identificatie in Nederland.
- Groupon: een e-commerce platform voor kortingsdeals.
- NPO Gemist: de iPhone-app waarmee je gemiste televisieprogramma’s van de NPO kunt terugkijken.
- Twitter: hoewel Twitter inmiddels deels is overgestapt op andere technologieën, is het platform oorspronkelijk grotendeels met Ruby on Rails gebouwd.