Ruby on Rails - Struttura delle directory

Quando si utilizza lo script helper di Rails per creare la propria applicazione, viene creata l'intera struttura di directory per l'applicazione. Rails sa dove trovare le cose di cui ha bisogno all'interno di questa struttura, quindi non devi fornire alcun input.

Ecco una vista di primo livello di un albero di directory creato dallo script di supporto al momento della creazione dell'applicazione. Ad eccezione di piccoli cambiamenti tra i rilasci, ogni progetto Rails avrà la stessa struttura, con le stesse convenzioni di denominazione. Questa coerenza ti dà un enorme vantaggio; puoi spostarti rapidamente tra i progetti Rails senza riapprendere l'organizzazione del progetto.

Per comprendere questa struttura di directory, usiamo il demoapplicazione creata nel capitolo Installazione. Può essere creato utilizzando un semplice comando di supportorails demo.

Ora vai nella directory principale dell'applicazione demo come segue:

tp> cd demo
demo> dir

Troverai una struttura di directory in Windows come segue:

Ora spieghiamo lo scopo di ciascuna directory

  • app- Organizza i componenti dell'applicazione. Ha sottodirectory che contengono la vista (visualizzazioni e helper), controller (controller) e logica di business back-end (modelli).

  • app/controllers- La sottodirectory controllers è dove Rails cerca per trovare le classi controller. Un controller gestisce una richiesta web da parte dell'utente.

  • app/helpers- La sottodirectory helper contiene tutte le classi helper usate per assistere le classi model, view e controller. Ciò aiuta a mantenere il codice del modello, della vista e del controller piccolo, concentrato e ordinato.

  • app/models- La sottodirectory models contiene le classi che modellano e racchiudono i dati memorizzati nel database della nostra applicazione. Nella maggior parte dei framework, questa parte dell'applicazione può diventare piuttosto disordinata, noiosa, dettagliata e soggetta a errori. Rails lo rende semplicissimo!

  • app/view - La sottodirectory delle visualizzazioni contiene i modelli di visualizzazione da compilare con i dati dalla nostra applicazione, convertire in HTML e tornare al browser dell'utente.

  • app/view/layouts- Contiene i file modello per i layout da utilizzare con le viste. Questo modella il metodo comune di intestazione / piè di pagina per il wrapping delle viste. Nelle visualizzazioni, definire un layout utilizzando <tt> layout: default </tt> e creare un file denominato default.html.erb. All'interno di default.html.erb, chiama <% yield%> per eseguire il rendering della vista utilizzando questo layout.

  • components - Questa directory contiene componenti, minuscole applicazioni autonome che raggruppano modello, visualizzazione e controller.

  • config- Questa directory contiene la piccola quantità di codice di configurazione di cui la tua applicazione avrà bisogno, inclusa la configurazione del tuo database (in database.yml), la struttura dell'ambiente Rails (environment.rb) e l'instradamento delle richieste web in arrivo (route.rb). Puoi anche personalizzare il comportamento dei tre ambienti Rails per test, sviluppo e distribuzione con i file trovati nella directory degli ambienti.

  • db- Di solito, la tua applicazione Rails avrà oggetti modello che accedono alle tabelle del database relazionale. È possibile gestire il database relazionale con gli script creati e inseriti in questa directory.

  • doc- Ruby ha un framework, chiamato RubyDoc, che può generare automaticamente la documentazione per il codice che crei. Puoi assistere RubyDoc con i commenti nel tuo codice. Questa directory contiene tutti i Rails generati da RubyDoc e la documentazione dell'applicazione.

  • lib - Metterai le librerie qui, a meno che non appartengano esplicitamente ad altro (come le librerie dei fornitori).

  • log- I log degli errori vanno qui. Rails crea script che ti aiutano a gestire vari log degli errori. Troverai log separati per il server (server.log) e ogni ambiente Rails (development.log, test.log e production.log).

  • public - Come la directory pubblica di un server web, questa directory contiene file web che non cambiano, come file JavaScript (public / javascripts), grafica (public / images), fogli di stile (public / stylesheets) e file HTML (public ).

  • script- Questa directory contiene gli script per avviare e gestire i vari strumenti che userete con Rails. Ad esempio, ci sono script per generare codice (generare) e avviare il server web (server).

  • test- I test che scrivi e quelli che Rails crea per te, vanno tutti qui. Vedrai una sottodirectory per mock (mock), unit test (unit), fixtures (fixtures) e test funzionali (funzionali).

  • tmp - Rails utilizza questa directory per conservare i file temporanei per l'elaborazione intermedia.

  • vendor - Le librerie fornite da fornitori di terze parti (come librerie di sicurezza o utilità di database oltre alla distribuzione di base di Rails) vanno qui.

Oltre a queste directory, ci saranno due file disponibili nella directory demo.

  • README - Questo file contiene i dettagli di base sull'applicazione Rail e la descrizione della struttura delle directory spiegata sopra.

  • Rakefile- Questo file è simile a Unix Makefile, che aiuta con la creazione, il packaging e il test del codice Rails. Questo sarà usato dall'utility rake fornita insieme all'installazione di Ruby.