Tous les guides
Intermédiaire-AvancéÀ votre rythmeGuide gratuitSection 8/33

Architecture MVC

Apprenez à construire et vérifier une application web avec des outils de développement et des assistants IA. Pratiquez les étapes de conception, code et validation.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 13.2.3 : Architecture MVC

🎯 Objectif pédagogique

Comprendre le pattern MVC qui structure toute application Rails, et l'implémenter en Ruby pur avant de passer au framework.


MVC : séparer les responsabilités

  • →Model : données et logique métier
  • →View : présentation et affichage
  • →Controller : orchestration entre Model et View
Loading diagram…

MVC en Ruby pur

# Model
class Recette
  attr_accessor :nom, :description
  attr_reader :id

  @@toutes = []
  @@prochain_id = 1

  def initialize(attrs = {})
    @id = @@prochain_id
    @@prochain_id += 1
    @nom = attrs[:nom]
    @description = attrs[:description]
    @@toutes << self
  end

  def self.all
    @@toutes
  end

  def self.find(id)
    @@toutes.find { |r| r.id == id }
  end

  def to_s
    "#{@nom} - #{@description}"
  end
end

# View
class RecetteView
  def afficher_liste(recettes)
    puts "\n--- Mes Recettes ---"
    recettes.each_with_index do |r, i|
      puts "#{i + 1}. #{r}"
    end
  end

  def demander_nom
    print 'Nom : '
    gets.chomp
  end
end

# Controller
class RecetteController
  def initialize
    @view = RecetteView.new
  end

  def liste
    @view.afficher_liste(Recette.all)
  end

  def creer
    nom = @view.demander_nom
    Recette.new(nom: nom)
  end
end

# Router
class Router
  def initialize(controller)
    @controller = controller
  end

  def run
    loop do
      puts "\n1. Lister  2. Ajouter  3. Quitter"
      choix = gets.chomp.to_i
      case choix
      when 1 then @controller.liste
      when 2 then @controller.creer
      when 3 then break
      end
    end
  end
end

Responsabilités MVC

CoucheResponsabilitéFichiers RailsExemple
ModelDonnées et logique métierapp/models/User.rb
ViewTemplates et affichageapp/views/index.html.erb
ControllerOrchestration requête/réponseapp/controllers/UsersController.rb
RouterURL vers actionsconfig/routes.rbget /users

← Scroll horizontally →

Vérification rapide

Dans MVC, où se trouve la validation d'un email ?

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.