MVC (Model-View-Controller)

Rails usa la arquitectura model-view-controller, para esto veamos la definición de MVC de wikipedia:

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario y la lógica de control en tres componentes distintos.




La definición puede que no deje claro que es y como es que trabaja, veamos parte por parte esta arquitectura y cual es el objetivo de cada una:

Models: Estos son responsables de la comunicación con el back-end de los datos almacenados, que seria una base de datos (SQLlite, MySQL, SQL Server, etc).

Views: Las vistas son responsables de lo que ve el usuario el front-end de la aplicación; estos contienen una mezcla de HTML y el uso de algún lenguaje embebido (en este caso ruby) para generar contenido dinámico.

Controllers: Los controladores son los responsables de saber que hacer con las entradas de los usuarios. Manejan los requests del navegador, llaman las funciones apropiadas sobre los objetos del modelo e interpreta las vistas en HTML puro para regresarlo al navegador.