Overzicht artikelen:
- Oefenroutes rijexamen Kontich - Update 1
- Oefenroutes praktisch rijexamen - examencentrum Kontich
- Rails hosting - de reacties
- Ruby on Rails hosting
- Textmate voor Windows gebruikers
- Ruby on Rails Migrations
- (Ajax) scaffolding tutorial
- Model - View – Controller
- MySQL + grafische interface installeren
- Ruby on Rails installeren
Model - View – Controller
26 maart 2006, 00:21
Een tijd geleden beloofde ik de concepten achter het Ruby on Rails
framework uit te leggen. In dit artikel zal ik het MVC
ontwerppatroon (Model – View – Controller) toelichten.
MVC is een manier om de code van een applicatie in 3 componenten
op te delen:
- Het Model: gaat om met data en met de logica die hierop van toepassing is
- De View: verzorgt de interface van een applicatie
- De Controller: verzorgt de logica achter een applicatie
Deze opdeling maakt dat code makkelijker te schrijven en te onderhouden is.
MVC maakt het bijvoorbeeld eenvoudiger om het ontwerp (View) van een website en hetgeen achter de schermen gebeurt (Model & Controller) aan twee verschillende personen toe te vertrouwen. De ontwerper neemt in dit geval de View voor zijn rekening (deze wordt geschreven in RHTML; een mix van HTML met een minimale hoeveelheid Ruby-code). De programmeur levert het Model en de View (pure Ruby-code).
MVC kan best verduidelijkt worden aan de hand van een voorbeeld: een online winkel.
- Het Model gaat zoals eerder vermeld om met data en met de logica die hierop van toepassing is. In het voorbeeld betekent dit dat het Model producten ophaalt uit een database, maar tegelijkertijd ook een methode kan bevatten die ervoor zorgt dat enkel producten die vandaag leverbaar zijn opgehaald worden. Het Model kan bijvoorbeeld ook een winkelmandje beheren én een methode bevatten die een korting toekent als er voor meer dan 20€ besteld wordt (=”data-logica”).
- De View verzorgt de interface. In ons voorbeeld geeft hij een lijst van producten weer, en bevat hij manieren om deze producten aan een winkelmandje toe te voegen (zonder de achterliggende logica voor deze actie te verzorgen).
- De Controller bevat de logica om een product aan een mandje toe te voegen, om een mandje leeg te maken,… Hij houdt dus rekening met de input van de gebruiker (View; bijvoorbeeld klikken op “mandje leegmaken”) om het Model aan te passen. De Controller doet de applicatie werken.
Grafisch ziet MVC er als volgt uit:
- Via de browser vraagt een gebruiker een applicatie iets te doen
- De Controller beantwoord deze vraag door via het Model (dat met de database communiceert) data op te halen
- De Controller roept de View aan om de opgehaalde data in een layout te plaatsen
- De View (layout) wordt weergegeven in de browser
Toegepast op ons voorbeeld:
- Een gebruiker vraagt via zijn browser een lijst met leverbare producten op
- De Controller beantwoord deze vraag door via het Model de leverbare producten uit de database op te halen
- De Controller vraagt de View om de opgehaalde producten in een lijst te plaatsen
- De lijst met producten wordt weergegeven in de browser
Reageer
- RubyEnRails 2009 Amsterdam
- Apple wordt duurder in de UK
- Ruby on Rails op Mac OS X Leopard
- Ruby on Rails hosting: Phusion Passenger wordt populair
- Aankondiging: RidingRails Event
- Gratis Ruby on Rails boek
- Opruimen "Google Bladwijzers"
- Stopzetting OnRails.be - pt.1
- Rails hosting - de reacties
- Ruby on Rails hosting
- I'm Java, I'm Ruby on Rails
- Textmate voor Windows gebruikers
- Ruby adventskalender
- HappyCodr: Ruby on Rails Showcase
- Al 37 Ruby/Rails boeken...
