Tutoriel Ruby on Rails

โšก Rรฉsumรฉ intelligent

Ce tutoriel Ruby on Rails prรฉsente le framework web open source รฉcrit en Ruby, utilisรฉ par Airbnb, GitHub et Shopify. Il dรฉtaille l'installation surโ€ฆ Windows, Mac et Linux, gรฉnรฉrateurs Rails, routage, vues, ActiveRecord, validations et dรฉbogage.

  • ๐Ÿ’Ž Langage et cadre : Ruby est un langage dynamique et orientรฉ objet conรงu pour la lisibilitรฉ, et Rails est le framework MVC complet construit sur ce langage pour le dรฉveloppement d'applications.ping Applications web rapidement.
  • ๏ธ Configuration multiplateforme : Installez Ruby et Rails sur Windows en utilisant RubyInstaller, sur Mac via Homebrew, et sur Ubuntu Linux via apt suivi de gem install rails.
  • ๏ธ Des principes directeurs: Rails impose les principes ยซ Ne vous rรฉpรฉtez pas ยป et ยซ Convention plutรดt que Configuration ยป, ce qui permet aux รฉquipes d'รฉcrire moins de code rรฉpรฉtitif et de suivre une structure de projet prรฉvisible.
  • โš™๏ธ Generators et routage : Utilisez la commande `rails generate scaffold` pour gรฉnรฉrer le code CRUD, puis utilisez `config/routes.rb` pour configurer les API RESTful. URLs aux actions du contrรดleur en quelques secondes.
  • ๐Ÿ‡ง๐Ÿ‡ท ActiveRecord Power : ActiveRecord associe les classes Ruby aux tables de la base de donnรฉes, prend en charge les migrations, les associations et les validations, et assure la cohรฉrence des donnรฉes entre les environnements.

Tutoriel Ruby on Rails

Qu'est-ce que Ruby ?

Ruby Ruby est un langage de programmation interprรฉtรฉ, orientรฉ objet et de haut niveau. C'est un langage open source dynamique, soutenu par une large communautรฉ. Conรงu pour la simplicitรฉ et la productivitรฉ, Ruby encourage une programmation centrรฉe sur l'humain avant la machine. Yukihiro Matsumoto a crรฉรฉ Ruby au Japon en 1995.

Quโ€™est-ce que Rails ?

Rails Rails est un framework de dรฉveloppement รฉcrit en Ruby pour la crรฉation d'applications web. Crรฉรฉ initialement comme base de l'application Basecamp, il a ensuite รฉtรฉ publiรฉ en tant que logiciel libre en 2004. Rails offre de nombreuses fonctionnalitรฉs standard intรฉgrรฉes, ce qui en fait un choix judicieux pour les prototypes MVP.ping et un dรฉveloppement rapide des produits.

Rails a รฉtรฉ crรฉรฉ par David Heinemeier Hansson, plus connu sous le nom de DHH. C'est l'un des outils les plus influents et les plus populaires pour le dรฉveloppement d'applications web. Il est utilisรฉ par des sites majeurs tels qu'Airbnb, GitHub et Shopify.

Pourquoi rails ?

Avant d'installer la chaรฎne d'outils, il est utile de comprendre pourquoi Rails reste un choix populaire pour le dรฉveloppement de navires.ping Applications web rapidement.

  • Rails est distribuรฉ sous forme de gem Ruby, et vous pouvez l'utiliser pour crรฉer une grande variรฉtรฉ d'applications.
  • Il vous permet de crรฉer des applications web classiques, des sites de commerce รฉlectronique, des systรจmes de gestion de contenu, et bien plus encore.
  • Rails est un framework complet qui inclut tout ce dont vous avez besoin pour crรฉer une application web pilotรฉe par une base de donnรฉes en utilisant le modรจle Modรจle-Vue-Contrรดleur (MVC).
  • Toutes les couches sont conรงues pour fonctionner ensemble de maniรจre transparente, de sorte que les projets Rails nรฉcessitent gรฉnรฉralement moins de lignes de code que les projets รฉquivalents dans d'autres frameworks.

Comment tรฉlรฉcharger et installer Ruby sur Windows

Le processus d'installation dรฉpend de votre systรจme d'exploitation. Les sections suivantes expliquent comment installer Ruby on Windows, Mac et Linux.

ร‰tape 1) Tรฉlรฉchargez RubyInstaller.
Le moyen le plus simple d'installer Ruby sur votre Windows L'ordinateur est accessible via Ruby Installer, disponible ร  l'adresse suivante : https://rubyinstaller.org/.

Une fois le tรฉlรฉchargement terminรฉ, exรฉcutez le programme d'installation.

ร‰tape 2) Cliquez sur le fichier d'installation tรฉlรฉchargรฉ.
Double-cliquez sur le fichier d'installation tรฉlรฉchargรฉ, par exemple rubyinstaller-2.4.1-2-x64.exe.

ร‰tape 3) Acceptez la licence.
Sรฉlectionnez lโ€™option ยซ Jโ€™accepte le permis ยป et cliquez sur ยซ Suivant ยป. Lโ€™รฉcran ci-dessous devrait sโ€™afficher.

Tรฉlรฉchargez et installez Ruby sur Windows

ร‰tape 4) Cochez les deux premiรจres cases.
Cochez les deux premiรจres cases pour faciliter l'exรฉcution des scripts Ruby.

Cliquez sur le bouton ยซ Installer ยป pour lancer lโ€™installation. Lโ€™รฉcran ci-dessous devrait sโ€™afficher une fois lโ€™installation terminรฉe.

Tรฉlรฉchargez et installez Ruby sur Windows

ร‰tape 5) Cliquez sur Terminer.
Ne dรฉcochez pas l'option d'installation de MSYS2. Cliquez sur ยซ Terminer ยป pour achever l'installation. Une fenรชtre d'invite de commandes s'ouvre, comme illustrรฉ ci-dessous.

Tรฉlรฉchargez et installez Ruby sur Windows

ร‰tape 6) Installez MSYS2.
Cette รฉtape installe MSYS2, une plateforme de compilation dotรฉe d'un gestionnaire de paquets facilitant l'installation de paquets sur Windows.

Appuyez sur Entrรฉe pour installer tous les composants, car ils sont tous nรฉcessaires au bon fonctionnement de l'environnement de dรฉveloppement Ruby on Rails. Windows.

Tรฉlรฉchargez et installez Ruby sur Windows

Installation des rails

Vous devriez avoir installรฉ Ruby comme indiquรฉ dans la section prรฉcรฉdente. Ensuite, installez Rails. Vous pouvez installer Rails ร  l'aide d'un package disponible sur [lien manquant]. RailsInstallateurmais le paquet ne contient souvent pas la derniรจre version de toutes les dรฉpendances requises.

Si vous avez dรฉjร  installรฉ la derniรจre version de Ruby ainsi que les RubyGems et extensions de base, il vous suffit d'exรฉcuter la commande suivante dans l'invite de commandes pour installer Rails sur votre systรจme : gem install rails.

Vous devrez รฉgalement installer Node.js si vous ne l'avez pas dรฉjร , car certaines bibliothรจques dont Rails dรฉpend nรฉcessitent un JavaL'environnement d'exรฉcution du script doit fonctionner correctement. Tรฉlรฉchargez Node ร  l'adresse suivante : https://nodejs.org.

Une approche plus courante et prรฉfรฉrรฉe sur Windows est d'utiliser le Windows Sous-systรจme pour Linux. Il fournit un environnement GNU/Linux avec des outils en ligne de commande, des utilitaires et des applications courantes directement intรฉgrรฉs. Windows.

Installer Ruby sur Mac

Ruby est dรฉjร  prรฉinstallรฉ sur votre Mac. Cependant, la version prรฉinstallรฉe est souvent obsolรจte ; il est donc conseillรฉ dโ€™installer une version plus rรฉcente.

La mรฉthode la plus simple consiste ร  utiliser un gestionnaire de paquets tel que HomebrewVous devrez peut-รชtre d'abord installer Homebrew en exรฉcutant la commande ci-dessous dans le Terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Un avertissement s'affiche et vous invite ร  saisir votre mot de passe. Saisissez votre mot de passe Mac (les caractรจres ne s'affichent pas pendant la saisie) et appuyez sur Entrรฉe. Exรฉcutez ensuite cette commande Homebrew pour installer Ruby sur votre Mac.

brew install ruby

Exรฉcutez ensuite cette commande :

echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

Cela configure la nouvelle installation de Ruby comme version par dรฉfaut de Ruby sur votre systรจme, au lieu de la version prรฉinstallรฉe.

Pour vรฉrifier que l'installation a rรฉussi, exรฉcutez la commande suivante dans le Terminal :

ruby --version

Ceci affiche le numรฉro de version de Ruby installรฉ. Le rรฉsultat ressemble ร  ceci :

ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

Installer Ruby sur Ubuntu (Linux)

La mรฉthode la plus simple pour installer Ruby sur Ubuntu L'installation se fait via le gestionnaire de paquets apt. Exรฉcutez les commandes suivantes dans le Terminal pour installer la derniรจre version de Ruby depuis le dรฉpรดt. Ubuntu rรฉfรฉrentiels.

  • mise ร  jour de sudo apt โ€“ Ceci met ร  jour la valeur par dรฉfaut Ubuntu rรฉfรฉrentiels.
  • sudo apt install ruby-full โ€“ Ceci tรฉlรฉcharge et installe la derniรจre version de Ruby.

Pour confirmer l'installation, exรฉcutez ruby โ€“versionCeci affiche la version de Ruby que vous avez installรฉe.

Installation de rails sur Ubuntu (Linux)

Suivez les รฉtapes ci-dessous pour installer Rails sur votre machine Linux.

ร‰tape 1) Mettez ร  jour votre gestionnaire de gemmes en exรฉcutant la commande suivante : mise ร  jour des gemmes โ€“systรจme dans le terminal ou l'invite de commandes.

ร‰tape 2) Courir Gem installer des rails pour installer la derniรจre version de Rails sur votre ordinateur.

ร‰tape 3) Installez la gem Bundler pour une gestion simplifiรฉe des dรฉpendances des gems dans votre application Rails. Exรฉcutez-la. bundler d'installation de gem.

Deux principes des rails

Rails suit les principes de conception logicielle de base et vous encourage ร  les utiliser รฉgalement.

Les deux plus courants sont :

  • Ne vous rรฉpรฉtez pas (DRY) โ€“ ce qui permet d'obtenir un code concis, cohรฉrent et facile ร  maintenir.
  • Convention sur la configuration Rails est prรฉconfigurรฉ avec des valeurs par dรฉfaut judicieuses qui correspondent ร  la plupart des usages courants. Cela accรฉlรจre le dรฉveloppement d'applications et rรฉduit la quantitรฉ de code ร  maintenir.

Rails โ€“ Structures de fichiers de projet

Une fois Rails installรฉ sur votre systรจme, crรฉez une application Rails. Les sections suivantes prรฉsentent un exemple Ruby on Rails : la crรฉation dโ€™une application de liste de tรขches. Exรฉcutez la commande suivante dans votre terminal pour crรฉer lโ€™application :

rails new todo_app

Cette commande crรฉe un rรฉpertoire nommรฉ application de tรขches dans le rรฉpertoire courant avec la structure de dossiers de base d'une application web Rails, comme indiquรฉ ci-dessous.

Rails โ€“ Structures de fichiers de projet

Voici les principaux rรฉpertoires gรฉnรฉrรฉs pour le projet :

appli โ€“ regroupe les sous-rรฉpertoires pour l'interface utilisateur/la mise en page (vues et fonctions d'assistance), le contrรดleur (fichiers de contrรดleur) et les modรจles (logique mรฉtier/applicative).

application/contrรดleurs โ€“ stocke les fichiers de contrรดleur utilisรฉs par Rails pour traiter les requรชtes du client.

application/actifs โ€“ contient les fichiers statiques nรฉcessaires au front-end de l'application, regroupรฉs par type : Javascรฉnario fichiers, images et feuilles de style.

application/aides โ€“ contient des fonctions d'assistance qui permettent de garder la logique de votre modรจle d'application, de votre vue et de votre contrรดleur ciblรฉe, compacte et รฉpurรฉe.

application/modรจles โ€“ contient les fichiers qui modรฉlisent la base de donnรฉes de votre application. Les classes du modรจle facilitent grandement l'utilisation de la base de donnรฉes.

application/vues โ€“ Contient les fichiers de modรจle/mise en page avec lesquels l'utilisateur de votre application interagit. Ces modรจles combinent du HTML avec des donnรฉes provenant de la base de donnรฉes.

coffre โ€“ Contient les scripts Rails qui lancent votre application. Il peut รฉgalement inclure d'autres scripts utilisรฉs pour configurer et mettre ร  jour l'application.

config โ€“ contient des fichiers de configuration tels que base de donnรฉes.yml, environnement.rb, routes.rb, etc., dont votre application a besoin pour fonctionner.

db โ€“ contient les fichiers et scripts utilisรฉs pour gรฉrer la base de donnรฉes de votre application.

lib โ€“ contient des modules รฉtendus pour votre application.

enregistrer โ€“ contient des fichiers journaux tels que server.log, development.log, test.log et production.log, utilisรฉ pour dรฉboguer ou surveiller votre application.

public โ€“ contient des fichiers statiques et des ressources compilรฉes, tels que des fichiers HTML, JavaFichiers de script, images et feuilles de style.

tester โ€“ contient les fichiers de test que vous รฉcrivez pour tester les fonctionnalitรฉs de votre application.

tmp โ€“ contient des fichiers temporaires tels que les fichiers cache et les fichiers PID.

vendeur โ€“ contient des bibliothรจques tierces.

Fichier gemme โ€“ spรฉcifie les gems de base nรฉcessaires au fonctionnement de votre application web. Vous pouvez les regrouper en environnements de dรฉveloppement, de test ou de production, et Rails saura quand inclure chaque gem.

Gemfile.lock Contrairement au Gemfile, qui liste explicitement les gems que vous souhaitez utiliser dans votre application, le fichier Gemfile.lock contient รฉgalement d'autres gems dont dรฉpendent celles listรฉes dans le Gemfile. Ces gems sont installรฉes automatiquement pour satisfaire les dรฉpendances.

Lisez-moi.md โ€“ Utilisez ce fichier pour partager les informations essentielles concernant votre application, telles que sa fonction et la maniรจre de l'installer et de l'exรฉcuter.

Fichier rake โ€“ contient diverses dรฉfinitions de tรขches Rake qui permettent d'automatiser les tรขches d'administration quotidiennes de votre application.

config.ru โ€“ un fichier de configuration Rack qui fournit une interface au serveur web pour dรฉmarrer votre application.

Changez de rรฉpertoire pour accรฉder au application de tรขches rรฉpertoire Rails gรฉnรฉrรฉ et exรฉcutรฉ serveur de rails pour dรฉmarrer l'application. Taper localhost: 3000 dans la barre d'adresse de votre navigateur web. Si tout s'est bien passรฉ, vous devriez voir l'รฉcran ci-dessous.

Rails โ€“ Structures de fichiers de projet

Ceci est la page d'accueil par dรฉfaut de votre application. Vous la modifierez plus loin dans ce tutoriel Ruby on Rails. Vous pouvez arrรชter le serveur en appuyant sur Ctrl + C.

Rails โ€“ Gรฉnรฉrer des commandes

La commande `generate` de Rails utilise des modรจles pour crรฉer de nombreux รฉlรฉments utiles dans votre application. Ces gรฉnรฉrateurs permettent un gain de temps considรฉrable.

Ils รฉcrivent le code standard nรฉcessaire au fonctionnement de votre application web. Exรฉcuter rails gรฉnรจre Utilisez la commande `ls` dans l'invite de commandes ou le Terminal pour afficher la liste des gรฉnรฉrateurs disponibles, comme indiquรฉ ci-dessous.

Rails โ€“ Gรฉnรฉrer des commandes

Vous pouvez aussi courir rails gรฉnรจre Pour consulter la description de la fonction de la commande, vous trouverez une liste des options utiles et un exemple d'utilisation. La figure ci-dessous illustre le rรฉsultat de l'exรฉcution. contrรดleur de gรฉnรฉration de rails.

Rails โ€“ Gรฉnรฉrer des commandes

Utilisez la commande `rails generate scaffold` pour crรฉer automatiquement le modรจle, la vue et le contrรดleur de l'application de liste de tรขches que vous dรฉveloppez. Exรฉcutez la commande suivante dans votre terminal (assurez-vous d'รชtre toujours dans le terminal). application de tรขches annuaire):

rails generate scaffold todo_list title:string description:text

Cela crรฉe une interface web CRUD (Crรฉer, Lire, Mettre ร  jour, Supprimer) complรจte pour la table TodoLists.

Une autre commande utile ร  connaรฎtre est les rails dรฉtruisentCela inverse tout ce qui rails gรฉnรจre t.

Rails โ€“ Routage

Le systรจme de routage de Rails, appelรฉ routeur Rails, gรจre toutes les requรชtes entrantes adressรฉes ร  votre application web. Il examine les URL de chaque requรชte et l'associe ร  l'action du contrรดleur responsable de son traitement, en utilisant la syntaxe spรฉcifiรฉe dans le fichier de routes (config / routes.rb).

Le fichier de routes contrรดle tout URL aspect de votre application web. Rails utilise une conception RESTful basรฉe sur le style architectural REST, qui fournit une carteping entre les verbes HTTP et la requรชte URLs aux actions du contrรดleur.

Le fichier de routes a รฉtรฉ gรฉnรฉrรฉ lorsque vous avez exรฉcutรฉ rails neufs Pour poursuivre le dรฉveloppement de votre application Todo, exรฉcutez la commande suivante :

rails db:migrate

Assurez-vous d'รชtre toujours ร  la racine de l'application (le application de tรขches annuaire).

Redรฉmarrez le serveur avec serveur de rails. Type http://localhost:3000/todo_lists/ Saisissez ยซ Crรฉez une page web ยป dans votre navigateur et appuyez sur Entrรฉe. Vous devriez obtenir une page web similaire ร  celle ci-dessous.

Rails โ€“ Routage

Il s'agit de la vue des listes de tรขches gรฉnรฉrรฉe par la commande scaffold, et elle est contrรดlรฉe par le TodoListsController. indice l'action.

Ajoutez une liste de tรขches en cliquant sur ยซ Nouvelle liste de tรขches ยป sur la page. L'รฉcran ci-dessous devrait s'afficher.

Rails โ€“ Routage

Notez le URL est maintenant http://localhost:3000/todo_lists/newVoici la page permettant de crรฉer une nouvelle liste de tรขches, et elle est contrรดlรฉe par le contrรดleur TodoListsController. New mรฉthode.

Saisissez le titre et la description de votre liste de tรขches dans le formulaire, puis cliquez sur ยซ Crรฉer une liste de tรขches ยป. URL devrait changer en http://localhost:3000/todo_lists/1, comme indiquรฉ ci-dessous.

Rails โ€“ Routage

Ceci est la page d'affichage d'une liste de tรขches, contrรดlรฉe par le contrรดleur TodoListsController. montrer mรฉthode. Si vous revenez ร  http://localhost:3000/todo_lists/Vous devriez maintenant voir l'รฉcran ci-dessous avec la nouvelle liste de tรขches ajoutรฉe.

Rails โ€“ Routage

Rails a pu associer chaque requรชte ร  l'action correspondante du contrรดleur TodoListsController en utilisant la dรฉfinition de route dans config / routes.rb.

Si vous jetez un coup d'ล“il ร  ce fichier, vous verrez une seule ligne ressources : listes_de_tรขches, ce qui est la mรฉthode par dรฉfaut de Rails pour รฉcrire des routes RESTful. Cette simple ligne crรฉe sept routes, toutes mappรฉes.ping au contrรดleur TodoLists.

Par convention, chaque action du contrรดleur correspond ร  une opรฉration CRUD (Crรฉer, Lire, Mettre ร  jour, Supprimer) spรฉcifique dans la base de donnรฉes.

Courir itinรฉraires ferroviaires Dans votre ligne de commande, consultez les diffรฉrentes routes disponibles pour votre application. La figure ci-dessous illustre le rรฉsultat de l'exรฉcution de cette commande. itinรฉraires ferroviaires.

Rails โ€“ Routage

Rails โ€“ Vues

La couche de prรฉsentation est l'un des composants du modรจle MVC et est chargรฉe de gรฉnรฉrer la rรฉponse HTML pour chaque requรชte adressรฉe ร  votre application. Rails utilise par dรฉfaut ERB (Embedded Ruby), un systรจme de modรจles puissant pour Ruby.

ERB facilite l'รฉcriture et la maintenance des modรจles en combinant du texte brut avec du code Ruby pour la substitution de variables et le contrรดle de flux. Un modรจle ERB utilise le .html.erb extension.

Vous utiliserez principalement deux marqueurs de balise, chacun entraรฎnant un traitement et une gestion spรฉcifiques du code intรฉgrรฉ.

Une รฉtiquette avec un signe รฉgal <%= %> indique que le code intรฉgrรฉ est une expression et que le rรฉsultat du code doit รชtre substituรฉ dans la sortie lors du rendu du modรจle.

L'autre balise sans signe รฉgal <% %> indique au moteur de rendu que le rรฉsultat du code ne doit pas รชtre substituรฉ ni imprimรฉ dans la sortie.

Chaque contrรดleur de votre application Rails possรจde un sous-rรฉpertoire correspondant dans application/vueset chaque action d'un contrรดleur a un correspondant .html.erb fichier dans ce sous-rรฉpertoire.

Jetez un oeil ร  application/vues de l'application Todo que vous dรฉveloppez. Vous y trouverez un sous-rรฉpertoire nommรฉ listes de tรขches comprenant .html.erb fichiers dont les noms correspondent aux actions dans le Listes de tรขches contrรดleur.

Rails โ€“ ActiveRecord, Active Record Pattern et ORM

ActiveRecord est l'implรฉmentation Ruby du modรจle Active Record. Dans ce modรจle, une classe reprรฉsente une table de base de donnรฉes, et une instance de cette classe reprรฉsente une ligne de cette table.

ActiveRecord est communรฉment appelรฉ ORM (Object Relational Map).pingLa couche `layer` est une technique qui vous permet de gรฉrer votre base de donnรฉes ร  l'aide du langage avec lequel vous รชtes le plus ร  l'aise. Elle est indรฉpendante de toute base de donnรฉes, vous pouvez donc facilement passer d'une base de donnรฉes ร  l'autre โ€” par exemple, SQLite, MySQL, PostgreSQL, SQL Server, ou Oracle โ€” en utilisant le mรชme code et la mรชme logique.

Par exemple, pour obtenir un tableau contenant toutes les listes de tรขches de votre application, vous n'avez pas besoin d'รฉcrire de code qui ouvre une connexion, exรฉcute une requรชte SQL SELECT et convertit le rรฉsultat.

Il vous suffit de taper Liste de tรขches.tout, et ActiveRecord renvoie le tableau rempli d'objets TodoList que vous pouvez utiliser ร  votre guise.

Il vous suffit de configurer les paramรจtres dans config/base de donnรฉes.ymlActiveRecord gรจre les diffรฉrences entre les systรจmes de bases de donnรฉes. Lorsque vous passez d'une base de donnรฉes ร  une autre, vous n'avez pas besoin de rรฉรฉcrire votre code.

Vous vous concentrez sur la logique applicative, et ActiveRecord gรจre les dรฉtails techniques de connexion ร  votre base de donnรฉes. Il utilise des conventions de nommage pour associer les modรจles aux tables de la base de donnรฉes.

Rails utilise le pluriel pour nommer les classes de votre modรจle afin de trouver la table de base de donnรฉes correspondante. Ainsi, pour une classe, Liste de choses ร  faireActiveRecord utilise une table de base de donnรฉes appelรฉe listes de tรขches.

Rails โ€“ Migrations

Une migration Rails est un script permettant de faire รฉvoluer la base de donnรฉes de votre application. Elle sert ร  configurer ou ร  modifier votre base de donnรฉes sans รฉcrire manuellement de requรชtes SQL.

Il utilise Ruby pour dรฉfinir les modifications apportรฉes au schรฉma de la base de donnรฉes et permet d'utiliser le contrรดle de version pour maintenir la synchronisation de votre base de donnรฉes entre les environnements.

Les migrations Rails utilisent un langage spรฉcifique au domaine (DSL) Ruby. Celui-ci agit comme un absolutraction et permet d'utiliser ou de modifier votre moteur de base de donnรฉes en fonction de vos besoins.

Les migrations peuvent รชtre partagรฉes avec tous les utilisateurs de l'application et annulรฉes pour revenir ร  la version prรฉcรฉdente. Ce mรฉcanisme de sรฉcuritรฉ robuste vous protรจge contre tout risque d'endommagement permanent de votre base de donnรฉes.

Rails โ€“ Associations ActiveRecord

Une connexion entre deux modรจles ActiveRecord est appelรฉe une association. Les associations facilitent grandement les opรฉrations sur les enregistrements liรฉs dans votre code. Il en existe quatre catรฉgories courantes.

Un ร  un : Un enregistrement contient prรฉcisรฉment une instance d'un autre modรจle. Un bon exemple est le profil utilisateur : un utilisateur ne possรจde qu'un seul profil. Il utilise le a_un mot-clรฉ.

Un ร  plusieurs : L'association la plus courante : un modรจle comporte zรฉro ou plusieurs instances d'un autre modรจle. Utilisez le a_plusieurs mot-clรฉ pour dรฉsigner cette association.

Plusieurs ร  plusieurs: C'est un peu plus compliquรฉ. ActiveRecord propose deux solutions : a_et_appartient_ร _beaucoup et a_plusieurs :ร  travers, ce qui vous donne accรจs au modรจle de jointure dรฉfini dans une table sรฉparรฉe.

Polymorphisme un-ร -plusieurs : Une association plus avancรฉe dans Rails. Elle dรฉfinit un modรจle qui peut appartenir ร  plusieurs modรจles diffรฉrents au sein d'une mรชme association.

Rails โ€“ Validations ActiveRecord

La validation permet de garantir l'exactitude des donnรฉes, car travailler avec des donnรฉes erronรฉes est risquรฉ et peut coรปter de l'argent ร  votre entreprise.

La validation offre รฉgalement une couche de sรฉcuritรฉ supplรฉmentaire contre les utilisateurs malveillants qui tenteraient d'insรฉrer des donnรฉes nuisibles dans votre base de donnรฉes. Rails propose une API claire d'assistants de validation dans ActiveRecord qui garantissent une base de donnรฉes propre, sรฉcurisรฉe et sans erreurs.

Les validations ActiveRecord s'exรฉcutent sur les objets du modรจle avant leur enregistrement dans la base de donnรฉes, ce qui les rend plus fiables et conformes aux bonnes pratiques.

Les mรฉthodes ActiveRecord suivantes dรฉclenchent des validations lorsqu'elles sont appelรฉes sur des objets de modรจle : crรฉez, crรฉez !, enregistrez, enregistrez !, mettez ร  jour et mettez ร  jour !.Les versions bang (Crรฉez ! Enregistrez ! et mettez ร  jour !) lรจve une exception si l'enregistrement est invalide, tandis que les versions sans point d'exclamation renvoient plutรดt la valeur false.

Les assistants de validation ActiveRecord les plus courants sont :

  • Confirmation: Cette fonction vรฉrifie que deux champs ont la mรชme valeur, par exemple le mot de passe et sa confirmation. Elle est utilisรฉe conjointement avec l'assistant de validation de prรฉsence.
  • Prรฉsence: vรฉrifie que le champ n'est pas vide.
  • Unicitรฉ: garantit une valeur unique pour un champ, par exemple un nom d'utilisateur.
  • Durรฉe : impose une limite ร  la longueur des caractรจres d'un champ.

Vous pouvez รฉgalement crรฉer votre propre validation personnalisรฉe en utilisant valider mรฉthode et en lui passant le nom d'une mรฉthode de validation personnalisรฉe.

Vรฉrifiez le modรจle erreurs Cet objet permet de comprendre pourquoi une validation a รฉchouรฉ. Vous disposez ainsi de toutes les informations nรฉcessaires pour rendre votre application plus sรฉcurisรฉe et mieux contrรดlรฉe, en n'autorisant que les donnรฉes valides dans votre base de donnรฉes.

Rails โ€“ ActionController

Le contrรดleur Rails est le centre de votre application Web. Il facilite et coordonne la communication entre l'utilisateur, les modรจles et les vues.

Vos classes de contrรดleur hรฉritent de Contrรดleur d'application, qui contient du code pouvant รชtre exรฉcutรฉ dans tous les autres contrรดleurs, et qui hรฉrite ร  son tour de ActionController::Base.

Le contrรดleur fournit les รฉlรฉments suivants ร  votre application :

  • Il achemine les requรชtes externes vers des actions internes.
  • Il gรจre la mise en cache, ce qui amรฉliore les performances de votre application.
  • Il gรจre les mรฉthodes d'assistance qui รฉtendent les capacitรฉs des modรจles de vue et gรจre รฉgalement les sessions utilisateur, offrant ainsi aux utilisateurs une expรฉrience fluide.

Rails โ€“ Configurations

Vous pouvez configurer des composants tels que les initialiseurs, les ressources, les gรฉnรฉrateurs et les middlewares ร  l'aide des fichiers d'initialisation et de configuration de votre application Rails. config rรฉpertoire. Fichiers comme config/application.rb, config/environments/development.rb et config/environments/test.rb sont utilisรฉs ici. Vous pouvez รฉgalement ajouter des paramรจtres personnalisรฉs pour votre application.

Rails โ€“ Dรฉbogage

Au fur et ร  mesure que vous dรฉveloppez votre application, vous devrez dรฉboguer votre code. Rails facilite cette tรขche grรขce ร โ€ฆ byebug gem. Vous pouvez dรฉmarrer une session de dรฉbogage en plaรงant le mot-clรฉ byebug n'importe oรน dans le code de votre application.

Cela interrompt temporairement l'exรฉcution ร  cet endroit. La gem byebug propose plusieurs commandes. Les plus utiles sont :

  • suivant: passe ร  la ligne de code suivante, ignorerping toutes les mรฉthodes invoquรฉes par la ligne actuelle.
  • รฉtape: similaire ร  nextmais dรฉtaille chaque mรฉthode invoquรฉe.
  • Pause: interrompt l'exรฉcution du code.
  • continuer: Poursuit l'exรฉcution du code.

D'autres outils de dรฉbogage sont disponibles, tels que : faire levierIls offrent tous des fonctionnalitรฉs similaires, avec une syntaxe lรฉgรจrement diffรฉrente. Les gems de dรฉbogage ne doivent pas รชtre utilisรฉes en production, car elles prรฉsentent des risques pour votre application et dรฉgradent l'expรฉrience utilisateur.

Les fichiers journaux peuvent รชtre analysรฉs pour dรฉtecter les erreurs en production et traitรฉes en consรฉquence. Il est รฉgalement recommandรฉ d'adopter une approche de dรฉveloppement pilotรฉe par les tests (TDD) lors de la conception de votre application afin de garantir son bon fonctionnement avant le dรฉploiement en production.

FAQ

Oui. Rails continue d'alimenter GitHub, Shopify et Basecamp, et la version 7 a ajoutรฉ Hotwire, l'importation de maps et la prise en charge intรฉgrรฉe de l'รฉditeur Trix. Il demeure un excellent choix pour les รฉquipes qui ont besoin d'itรฉrations rapides et de conventions รฉprouvรฉes.

Rails utilise Ruby, Django Usages PythonCe sont deux frameworks MVC complets dotรฉs d'ORM performants. Rails s'appuie sur des conventions et des gรฉnรฉrateurs de code, tandis que Django propose une interface d'administration et une configuration explicite plus stricte, souvent privilรฉgiรฉe par les รฉquipes pour les projets ร  forte intensitรฉ de donnรฉes.

Les chemins de dรฉploiement courants comprennent HerokuRender, Fly.io et AWS sont utilisรฉs via Capistrano ou Docker. La plupart des รฉquipes prรฉcompilent les ressources avec `rake assets:precompile`, dรฉfinissent `RAILS_ENV=production`, exรฉcutent `rails db:migrate` et hรฉbergent l'application derriรจre Puma et Nginx ou un รฉquilibreur de charge gรฉrรฉ.

Oui. Les assistants IA peuvent gรฉnรฉrer des modรจles, suggรฉrer des requรชtes ActiveRecord, rรฉdiger des tests RSpec et examiner les migrations. Il est impรฉratif de toujours vรฉrifier le code gรฉnรฉrรฉ en fonction des conventions et des recommandations de sรฉcuritรฉ de Rails avant de le valider, notamment pour l'authentification et les modifications de base de donnรฉes.

Les applications Rails font gรฉnรฉralement appel aux fournisseurs d'IA via des SDK Ruby ou des clients HTTP comme Faraday, stockent les requรชtes et les rรฉponses dans des modรจles ActiveRecord et mettent en file d'attente les tรขches longues avec Sidekiq. Des gems telles que ruby-openai et langchainrb simplifient l'intรฉgration de fonctionnalitรฉs d'IA modernes.

Rรฉsumez cet article avec :