20 mars 2020 542 lectures

.

L’échafaudage en Ruby on Rails fait référence à l’auto-génération d’un ensemble d’un modèle, de vues et d’un contrôleur généralement utilisé pour une seule table de base de données.

Par exemple, vous pouvez auto-générer un contrôleur, un modèle et des vues prêts à l’emploi avec une interface web CRUD (Create, Read, Update, Delete) complète pour la table Story en utilisant la commande suivante :

$rails generate scaffold Story title:string content:text

C’est beaucoup plus facile à faire, au lieu de tout coder vous-même, cela vous fait gagner beaucoup de temps !

Échafaudage ou modèles?

Par rapport à l’échafaudage qui génère tout ce dont vous avez besoin (et n’avez pas besoin), les modèles ne créent que certains composants connexes. La meilleure façon, et ma préférée, d’expliquer la différence entre l’échafaudage et les modèles est d’utiliser l’exemple suivant :

Générer des modèles

Une fois que vous avez entré la commande

$rails generate model Story title:string content:text

vous allez générer :

invoke active_record va lier votre modèle à la base de données, tandis que la ligne suivante crée un fichier de migration. Les migrations sont utilisées pour modifier le schéma de votre base de données. Ce fichier de migration crée la table de base de données appelée ‘stories’, et des colonnes de base de données pour « title » et « content ».

La troisième ligne va créer un modèle – une classe Ruby qui hérite de l’Active Record. Avec cela, chaque méthode qui peut être appelée dans Active Record peut maintenant être appelée dans votre modèle. Les trois dernières lignes créent des fichiers de test connexes pour votre modèle.

Alors que l’échafaudage vous permettra d’être rapidement opérationnel, il est peu probable que le code qu’il génère soit parfaitement adapté à votre application. Vous voudrez très probablement personnaliser le code généré. De nombreux développeurs Rails expérimentés évitent complètement le scaffolding, préférant écrire tout ou partie de leur code source à partir de zéro. Vous pouvez en savoir plus à ce sujet sur RailsGuides.

Comme vous pouvez le voir, generate models ne crée aucune sorte de vue pour afficher des informations sur une page. Pour avoir une application complète, prête à l’emploi, vous auriez besoin de :

  • générer des contrôleurs (qui à son tour génère des vues, également) ou
  • générer des échafaudages (qui génère votre modèle, vos vues, votre contrôleur et écrit dans votre fichier routes.rb).

Si vous changez d’avis et décidez d’utiliser scaffold après avoir déjà généré le modèle, vous pouvez toujours exécuter

$rails generate scaffold <name>

Il créera tous les fichiers manquants.

Générer un échafaudage

Si vous entrez la commande

$rails generate scaffold Story title:string content:text

vous générerez les fichiers suivants :

Une fois que les tests liés au modèle sont créés, la ligne suivante générera les routes de ressources vers vos histoires. Après la génération des routes de ressources vient le contrôleur et ses actions (index, show, new, edit, create, update et destroy), ainsi que les vues et les tests du contrôleur pour chacune de ces actions.

Le routeur Rails reconnaît les URLs et les connecte à l’action d’un contrôleur. Par défaut, l’action d’un contrôleur rendra une vue du même nom.

Migration

Chaque fois que vous créez une migration en utilisant des scripts (générer un modèle/générer un échafaudage), une nouvelle migration est ajoutée au bon répertoire. Vous utilisez

$rake db:migrate

pour vérifier quelles sont les migrations qui n’ont pas été ajoutées à la base de données.

Destroy

Chacun est libre de modifier et de faire les changements nécessaires à son application pour qu’elle fonctionne comme prévu, même si cela signifie supprimer complètement le scaffold. Vous pouvez supprimer le scaffold de la manière suivante :

  1. Générer le scaffold :
    $rails generate scaffold Story
  2. Si vous avez migré vos fichiers, effectuez un retour en arrière :
    $rake db:rollback
  3. Détruire ou annuler l’échafaudage :
    $rails destroy scaffold Story

En faisant cela, vous supprimerez tous les fichiers créés par le scaffold mais les modifications supplémentaires que vous avez pu faire manuellement ne seront pas supprimées.

Conclusion

Un scaffold est excellent à utiliser lorsqu’il s’agit d’exemples simples, de maquettes rapides ou de tests. Cependant, veillez à générer vos propres modèles lorsque vous décidez de développer une nouvelle application. N’oubliez pas de toujours tester votre application, découvrez comment le faire en utilisant Capybara !

Nous espérons que vous avez découvert quelque chose de nouveau aujourd’hui !

Précédemment publié à https://kolosek.com/rails-scaffold/

.

Tags

Rejoignez Hacker Noon

Créez votre compte gratuit pour débloquer votre expérience de lecture personnalisée.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.