Ruby on Rails - Structure de répertoire

Lorsque vous utilisez le script d'assistance Rails pour créer votre application, il crée toute la structure de répertoires de l'application. Rails sait où trouver les éléments dont il a besoin dans cette structure, vous n'avez donc pas à fournir de données.

Voici une vue de niveau supérieur d'une arborescence de répertoires créée par le script d'assistance au moment de la création de l'application. À l'exception des changements mineurs entre les versions, chaque projet Rails aura la même structure, avec les mêmes conventions de dénomination. Cette cohérence vous donne un énorme avantage; vous pouvez rapidement passer d'un projet Rails à un autre sans réapprendre l'organisation du projet.

Pour comprendre cette structure de répertoires, utilisons le demoapplication créée dans le chapitre Installation. Il peut être créé à l'aide d'une simple commande d'assistancerails demo.

Maintenant, allez dans le répertoire racine de l'application de démonstration comme suit -

tp> cd demo
demo> dir

Vous trouverez une structure de répertoires dans Windows comme suit -

Expliquons maintenant le but de chaque répertoire

  • app- Il organise les composants de votre application. Il a des sous-répertoires qui contiennent la vue (vues et aides), le contrôleur (contrôleurs) et la logique métier du backend (modèles).

  • app/controllers- Le sous-répertoire des contrôleurs est l'endroit où Rails recherche les classes de contrôleurs. Un contrôleur gère une requête Web de l'utilisateur.

  • app/helpers- Le sous-répertoire helpers contient toutes les classes d'assistance utilisées pour assister les classes de modèle, de vue et de contrôleur. Cela permet de garder le modèle, la vue et le code du contrôleur petits, concentrés et épurés.

  • app/models- Le sous-répertoire models contient les classes qui modélisent et encapsulent les données stockées dans la base de données de notre application. Dans la plupart des frameworks, cette partie de l'application peut devenir assez désordonnée, fastidieuse, verbeuse et sujette aux erreurs. Les rails le rendent très simple!

  • app/view - Le sous-répertoire views contient les modèles d'affichage à remplir avec les données de notre application, à convertir en HTML et à revenir au navigateur de l'utilisateur.

  • app/view/layouts- Contient les fichiers modèles pour les mises en page à utiliser avec les vues. Cela modélise la méthode courante d'en-tête / pied de page pour habiller les vues. Dans vos vues, définissez une mise en page en utilisant <tt> layout: default </tt> et créez un fichier nommé default.html.erb. Dans default.html.erb, appelez <% yield%> pour rendre la vue en utilisant cette disposition.

  • components - Ce répertoire contient des composants, de petites applications autonomes qui regroupent le modèle, la vue et le contrôleur.

  • config- Ce répertoire contient la petite quantité de code de configuration dont votre application aura besoin, y compris la configuration de votre base de données (dans database.yml), la structure de votre environnement Rails (environment.rb) et le routage des requêtes Web entrantes (routes.rb). Vous pouvez également personnaliser le comportement des trois environnements Rails pour le test, le développement et le déploiement avec les fichiers trouvés dans le répertoire des environnements.

  • db- Habituellement, votre application Rails aura des objets modèle qui accèdent aux tables de base de données relationnelle. Vous pouvez gérer la base de données relationnelle avec les scripts que vous créez et placez dans ce répertoire.

  • doc- Ruby a un framework, appelé RubyDoc, qui peut générer automatiquement de la documentation pour le code que vous créez. Vous pouvez aider RubyDoc avec des commentaires dans votre code. Ce répertoire contient tous les Rails générés par RubyDoc et la documentation de l'application.

  • lib - Vous placerez des bibliothèques ici, à moins qu'elles n'appartiennent explicitement ailleurs (comme les bibliothèques de fournisseurs).

  • log- Les journaux d'erreurs vont ici. Rails crée des scripts qui vous aident à gérer divers journaux d'erreurs. Vous trouverez des journaux séparés pour le serveur (server.log) et chaque environnement Rails (development.log, test.log et production.log).

  • public - Comme le répertoire public d'un serveur Web, ce répertoire contient des fichiers Web qui ne changent pas, tels que des fichiers JavaScript (public / javascripts), des graphiques (public / images), des feuilles de style (public / stylesheets) et des fichiers HTML (public ).

  • script- Ce répertoire contient des scripts pour lancer et gérer les différents outils que vous utiliserez avec Rails. Par exemple, il existe des scripts pour générer du code (générer) et lancer le serveur Web (serveur).

  • test- Les tests que vous écrivez et ceux que Rails crée pour vous, tout va ici. Vous verrez un sous-répertoire pour les mocks (mocks), les tests unitaires (unit), les fixtures (fixtures) et les tests fonctionnels (fonctionnels).

  • tmp - Rails utilise ce répertoire pour contenir les fichiers temporaires pour un traitement intermédiaire.

  • vendor - Les bibliothèques fournies par des fournisseurs tiers (comme les bibliothèques de sécurité ou les utilitaires de base de données au-delà de la distribution de base de Rails) vont ici.

En dehors de ces répertoires, il y aura deux fichiers disponibles dans le répertoire de démonstration.

  • README - Ce fichier contient un détail de base sur l'application ferroviaire et une description de la structure de répertoire expliquée ci-dessus.

  • Rakefile- Ce fichier est similaire à Unix Makefile, qui aide à construire, empaqueter et tester le code Rails. Cela sera utilisé par l'utilitaire rake fourni avec l'installation de Ruby.