1.3 Model View Controller 

MVC
Das Model-View-Controller-Paradigma (MVC) beschreibt einen Architekturentwurf für interaktive Anwendungen, der die Anwendung in die drei Komponenten Model (Datenmodell), View (Präsentation) und Controller (Programmsteuerung) unterteilt.
Abbildung Model-View-Controller-Entwurfsmuster
Das Paradigma entkoppelt durch eine strikte Trennung der Verantwortlichkeiten des Codes die Objekte, um ihre Flexibilität, ihre Modularität und ihre Wiederverwertbarkeit zu erhöhen.
In Übereinstimmung mit dem MVC-Paradigma ist das Rails-Framework hauptsächlich aus den drei Programmbibliotheken ActionController, ActiveRecord und ActionView aufgebaut, die ggf. auch unabhängig voneinander eingesetzt werden können.
ActiveRecord
Das Modul ActiveRecord entspricht dem Model im MVC-Paradigma. Seine Objekte repräsentieren die Anwendungsobjekte. Das Model liefert die darzustellenden Daten unabhängig vom Erscheinungsbild. Woher die Daten kommen, ob zum Beispiel aus einer relationalen Datenbank oder einer Web API, spielt keine Rolle. Das Model kennt weder den View noch den Controller. Es weiß also nicht, ob, wann, wie und wie oft es dargestellt und verändert wird.
Die Hauptaufgabe vom Modul ActiveRecord besteht darin, eine Verbindung von dem objektorientierten Klassenmodell zum relationalen Datenbankmodell herzustellen.
ActionController
Das Modul ActionController koordiniert die Interaktion zwischen Anwendung und Benutzer, indem es den Datenfluss zwischen Model und View steuert und kontrolliert. Es stellt zum Beispiel Möglichkeiten zur Verfügung, Daten des Models zu manipulieren, sie zur Darstellung an den View weiterzuleiten, eintreffende Anfragen an die Actions der Controller-Klassen zu übergeben und Session-Management und Caching zu realisieren.
ActionView
Das Modul ActionView dient zur Erstellung von Templates. Die Daten, die der Controller liefert, werden als dynamische Inhalte in der Ausgabe der Templates eingebunden. Der View kann die Daten in unterschiedlichen Formaten (HTML, XML o. a.) ausgeben.
ActionPack
Die beiden Module ActionController und ActionView werden in dem Modul ActionPack zusammengefasst. Das bedeutet jedoch nicht, dass innerhalb von Rails der Controller und der View miteinander vermischt werden, sondern diese Gruppierung verdeutlicht nur, dass Controller und View eng ineinandergreifen und deshalb typischerweise gemeinsam genutzt werden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.