Tutorial su Ruby on Rails
⚡ Riepilogo intelligente
Il tutorial su Ruby on Rails introduce il framework web open-source scritto in Ruby che alimenta Airbnb, GitHub e Shopify. La procedura guidata copre l'installazione su WindowsMac e Linux, generatori Rails, routing, viste, ActiveRecord, validazioni e debug.

Cos'è Rubino?
Ruby Ruby è un linguaggio di programmazione di alto livello, interpretato e orientato agli oggetti. È un linguaggio open-source dinamico con una vasta comunità alle spalle. Ruby è stato progettato per la semplicità e la produttività. Incoraggia la scrittura di codice software che metta al primo posto l'essere umano e al secondo il computer. Yukihiro Matsumoto ha creato Ruby in Giappone nel 1995.
Cos'è Rails?
Rails Rails è un framework di sviluppo scritto in Ruby per la creazione di applicazioni web. È stato creato come base dell'applicazione Basecamp e poi rilasciato come software open source nel 2004. Rails offre molte funzionalità standard integrate, il che lo rende una scelta adatta per la prototipazione MVP.ping e un rapido sviluppo del prodotto.
Rails è stato creato da David Heinemeier Hansson, noto come DHH. È uno degli strumenti più influenti e popolari per la creazione di applicazioni web. Viene utilizzato da importanti siti come Airbnb, GitHub e Shopify.
Perchè Rails?
Prima di installare la toolchain, è utile capire perché Rails rimane una scelta popolare per la spedizioneping applicazioni web in modo rapido.
- Rails è distribuito come gemma Ruby e può essere utilizzato per creare un'ampia varietà di applicazioni.
- Consente di creare normali applicazioni web, siti di e-commerce, sistemi di gestione dei contenuti e altro ancora.
- Rails è un framework full-stack che include tutto il necessario per creare un'applicazione web basata su database utilizzando il modello Model-View-Controller (MVC).
- Tutti i livelli sono progettati per funzionare insieme in modo impeccabile, quindi i progetti Rails in genere richiedono meno righe di codice rispetto a progetti equivalenti in altri framework.
Come scaricare e installare Ruby su Windows
Il processo di installazione dipende dal sistema operativo. Le sezioni successive descrivono l'installazione di Ruby su Windows, Mac e Linux.
Passo 1) Scarica Rubyinstaller.
Il modo più semplice per installare Ruby sul tuo Windows il computer è tramite Ruby Installer, disponibile all'indirizzo https://rubyinstaller.org/.
Una volta scaricato, eseguire il programma di installazione.
Passo 2) Fai clic sul programma di installazione scaricato.
Double-fare clic sul file di installazione scaricato, ad esempio rubyinstaller-2.4.1-2-x64.exe.
Passo 3) Accetta la licenza.
Seleziona la casella di controllo "Accetto la licenza" e fai clic sul pulsante "Avanti". Dovresti visualizzare la schermata seguente.
Passo 4) Seleziona le prime due caselle di controllo.
Seleziona le prime due caselle per rendere più semplice l'esecuzione degli script Ruby.
Fai clic sul pulsante "Installa" per avviare l'installazione. Al termine, dovresti visualizzare la schermata seguente.
Passo 5) Clicca su Finisci.
Non deselezionare l'opzione che installa MSYS2. Fai clic su "Fine" per completare l'installazione. Si aprirà una finestra del prompt dei comandi come mostrato di seguito.
Passo 6) Installare MSYS2.
Questo passaggio installa MSYS2, una piattaforma di compilazione che include un gestore di pacchetti per una facile installazione dei pacchetti su Windows.
Premi Invio per installare tutti i componenti poiché sono tutti necessari per un ambiente di sviluppo Ruby on Rails fluido Windows.
Installazione delle guide
Dovresti aver installato Ruby dalla sezione precedente. Successivamente, installa Rails. Puoi installare Rails utilizzando un pacchetto da RailsInstaller, ma spesso il pacchetto non include la versione più recente di tutte le dipendenze richieste.
Se hai già installato l'ultima versione di Ruby, RubyGems e le estensioni di base, ti basterà eseguire il seguente comando dal prompt dei comandi per installare Rails sul tuo sistema: gem install rails.
Dovrai anche installare Node.js se non lo hai già, perché alcune librerie da cui dipende Rails richiedono un JavaLo script runtime funziona correttamente. Ottieni Node all'indirizzo https://nodejs.org.
Un approccio più comune e preferito su Windows è usare il Windows Sottosistema per Linux. Fornisce un ambiente GNU/Linux con strumenti da riga di comando, utilità e applicazioni comuni direttamente al suo interno. Windows.
Installazione di Ruby su Mac
Il tuo Mac ha già Ruby preinstallato. Tuttavia, la versione preinstallata è spesso obsoleta, quindi dovresti installarne una più recente.
Il modo più semplice per farlo è utilizzare un gestore di pacchetti come Fatto in casaPotrebbe essere necessario installare Homebrew eseguendo il comando seguente nel Terminale.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Viene visualizzato un avviso e viene richiesto di inserire la password. Inserisci la password del tuo Mac (i caratteri non vengono visualizzati durante la digitazione) e premi Invio al termine. Dopodiché, esegui questo comando Homebrew per installare Ruby sul tuo Mac.
brew install ruby
Quindi esegui questo comando:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
In questo modo la nuova installazione di Ruby viene impostata come Ruby predefinito sul sistema, al posto di quello preinstallato.
Per confermare che l'installazione sia andata a buon fine, esegui il seguente comando nel Terminale:
ruby --version
Questo comando visualizza il numero di versione di Ruby installato. L'output sarà simile a questo:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Installazione di Ruby su Ubuntu (Linux)
Il modo più semplice per installare Ruby su Ubuntu è tramite il gestore di pacchetti apt. Esegui i seguenti comandi nel Terminale per installare l'ultima versione di Ruby da Ubuntu repository.
- sudo apt update – Questo aggiorna l'impostazione predefinita Ubuntu repository.
- sudo apt install ruby-full – Questo scarica e installa l'ultima versione di Ruby.
Per confermare l'installazione, eseguire ruby –versioneQuesto comando visualizza la versione di Ruby installata.
Installazione delle guide su Ubuntu (Linux)
Segui i passaggi seguenti per installare Rails sul tuo computer Linux.
Passo 1) Aggiorna il tuo gestore gemme eseguendo aggiornamento gemme –sistema nel Terminale o nel prompt dei comandi.
Passo 2) Correre gemma installa binari per installare l'ultima versione di Rails sul tuo computer.
Passo 3) Installa la gemma Bundler per una facile gestione delle dipendenze delle gemme nelle applicazioni Rails. Esegui pacchetto di installazione gemma.
Due principi delle rotaie
Rails segue i principi fondamentali della progettazione del software e ti incoraggia a utilizzarli anche tu.
I due più comuni sono:
- Non ripetere te stesso (DRY) – Ciò si traduce in un codice conciso, coerente e di facile manutenzione.
- Convenzione sulla configurazione Rails è preconfigurato con impostazioni predefinite sensate che si adattano alla maggior parte degli utilizzi comuni. Questo velocizza lo sviluppo delle applicazioni e riduce la quantità di codice da manutenere.
Rotaie: strutture dei file di progetto
Dopo aver installato Rails sul tuo sistema, crea un'applicazione Rails. Le sezioni successive illustrano un esempio di Ruby on Rails, ovvero la creazione di un'applicazione per la gestione di una lista di cose da fare. Esegui il seguente comando nel tuo terminale per creare l'applicazione:
rails new todo_app
Questo comando crea una directory denominata app per fare nella directory corrente con la struttura di cartelle di base di un'applicazione web Rails, come mostrato di seguito.
Ecco le principali directory generate per il progetto:
App – raggruppa le sottocartelle per l'interfaccia utente/layout (viste e helper), il controller (file del controller) e i modelli (logica di business/applicazione).
app/controller – memorizza i file del controller utilizzati da Rails per gestire le richieste del client.
app/risorse – contiene i file statici necessari al front-end dell'applicazione, raggruppati per tipologia: JavaCopione file, immagini e fogli di stile.
app/aiutanti – contiene funzioni di supporto che mantengono il modello, la vista e la logica del controller dell'applicazione focalizzati, compatti e ordinati.
app/modelli – contiene i file che modellano il database della tua applicazione. Le classi del modello semplificano notevolmente il lavoro con il database.
app/visualizzazioni – contiene i file modello/layout con cui l'utente della tua applicazione interagisce. I modelli combinano codice HTML con dati provenienti dal database.
bidone – Contiene gli script Rails che avviano l'applicazione. Può includere anche altri script utilizzati per configurare e aggiornare l'applicazione.
config – contiene file di configurazione come database.yml, ambiente.rb, rotte.rb, ecc., necessari al funzionamento della tua applicazione.
db – contiene i file e gli script utilizzati per gestire il database dell'applicazione.
lib – contiene moduli estesi per la tua applicazione.
ceppo – contiene file di registro come server.log, development.log, test.log e production.log, utilizzato per il debug o il monitoraggio dell'applicazione.
la percezione – contiene file statici e risorse compilate, come file HTML, JavaFile di script, immagini e fogli di stile.
test – contiene i file di test che scrivi per testare la funzionalità della tua applicazione.
tmp – contiene file temporanei come file di cache e file PID.
venditore – contiene librerie di terze parti.
Gemfile – specifica i requisiti di base delle gemme per eseguire la tua applicazione web. Puoi raggruppare le gemme in sviluppo, test o produzione e Rails saprà quando includere ciascuna gemma.
Gemfile.lock – a differenza del Gemfile, che elenca esplicitamente le gemme che si desidera utilizzare nell'applicazione, il Gemfile.lock contiene anche altre gemme da cui dipendono quelle elencate nel Gemfile. Queste vengono installate automaticamente per soddisfare le dipendenze.
Leggimi.md – Utilizza questo file per condividere i dettagli essenziali sulla tua applicazione, come ad esempio cosa fa l'app e come installarla ed eseguirla.
file di rake – contiene diverse definizioni di attività Rake che aiutano ad automatizzare le attività amministrative quotidiane della tua applicazione.
config.ru – un file di configurazione Rack che fornisce un'interfaccia al server web per avviare l'applicazione.
Cambiare directory in app per fare directory Rails generati ed eseguiti server Rails per avviare l'applicazione. Tipo localhost: 3000 nella barra degli indirizzi del tuo browser web. Se tutto è andato bene, dovresti visualizzare la schermata seguente.
Questa è la homepage predefinita della tua applicazione. La modificherai in una sezione successiva di questo tutorial su Ruby on Rails. Puoi arrestare il server premendo Ctrl + C.
Rails – Genera comandi
Il comando `generate` di Rails utilizza dei modelli per creare molti elementi utili nella tua applicazione. Questi generatori consentono di risparmiare molto tempo.
Scrivono il codice boilerplate necessario al funzionamento della tua applicazione web. Esegui binari generano È possibile eseguire il comando da solo nel prompt dei comandi o nel Terminale per visualizzare un elenco dei generatori disponibili, come mostrato di seguito.
Puoi anche correre binari generano per visualizzare una descrizione di ciò che fa il comando. Elenca le opzioni utili e un esempio di utilizzo. La figura seguente mostra l'output dell'esecuzione controller di generazione binari.
Utilizza il comando rails generate scaffold per creare automaticamente il modello, la vista e il controller per l'applicazione Todo list che stai creando. Esegui quanto segue nel tuo Terminale (assicurati di essere ancora nel app per fare elenco):
rails generate scaffold todo_list title:string description:text
Questo crea un'interfaccia web CRUD completa (Crea, Leggi, Aggiorna, Elimina) per la tabella TodoLists.
Un altro comando utile da sapere è distruggere le rotaieInverte qualsiasi cosa binari generano fa.
Rotaie – Instradamento
Il sistema di routing di Rails, chiamato Rails router, gestisce tutte le richieste in entrata alla tua applicazione web. Esamina il URL di ogni richiesta e la mappa all'azione del controller responsabile della sua gestione, utilizzando la sintassi specificata nel file delle rotte (config/route.rb).
Il file dei percorsi controlla ogni URL aspetto della tua applicazione web. Rails utilizza un design RESTful basato sullo stile architettonico REST, che fornisce una mappaping tra verbi HTTP e richiesta URLazioni del controller.
Il file dei percorsi è stato generato durante l'esecuzione nuove rotaie In precedenza. Continuando con l'applicazione Todo che stai creando, esegui quanto segue:
rails db:migrate
Assicurati di essere ancora alla radice dell'applicazione (la app per fare rubrica).
Avvia nuovamente il server con server Rails. genere http://localhost:3000/todo_lists/ nel tuo browser e premi Invio. Dovresti visualizzare una pagina web simile a quella qui sotto.
Questa è la vista degli elenchi Todo generata dal comando scaffold ed è controllata dal TodoListsController. Index azione.
Aggiungi una nuova lista di cose da fare cliccando su "Nuova lista di cose da fare" nella pagina. Dovresti visualizzare la schermata seguente.
Si noti la URL è ora http://localhost:3000/todo_lists/newQuesta è la pagina per creare una nuova lista di cose da fare ed è controllata dal TodoListsController. new metodo.
Inserisci il titolo e la descrizione della tua lista di cose da fare nel modulo e fai clic su "Crea lista di cose da fare". URL dovrebbe cambiare in http://localhost:3000/todo_lists/1, come mostrato di seguito.
Questa è la pagina di visualizzazione di un elenco di cose da fare, controllato dal TodoListsController. mostrare attraverso le sue creazioni metodo. Se torni a http://localhost:3000/todo_lists/Ora dovresti visualizzare la schermata sottostante con il nuovo elenco di cose da fare aggiunto.
Rails è stato in grado di mappare ogni richiesta alla corrispondente azione TodoListsController utilizzando la definizione del percorso in config/route.rb.
Se dai un'occhiata a questo file, vedrai una singola riga risorse :liste_di_cose, che è il modo predefinito di Rails per scrivere percorsi RESTful. Questa singola riga crea sette percorsi, tutti mappatiping al controller TodoLists.
Per convenzione, ogni azione del controller corrisponde a una specifica operazione CRUD (Create, Read, Update, Delete) nel database.
Correre percorsi ferroviari nella riga di comando per visualizzare i vari percorsi disponibili nell'applicazione. La figura seguente mostra l'output dell'esecuzione percorsi ferroviari.
Binari – Panorami
Il livello di visualizzazione è uno dei componenti del paradigma MVC ed è responsabile della generazione della risposta HTML per ogni richiesta alla tua applicazione. Rails utilizza ERB (Embedded Ruby) di default, un potente sistema di template per Ruby.
ERB semplifica la scrittura e la manutenzione dei modelli combinando testo semplice con codice Ruby per la sostituzione delle variabili e il controllo del flusso. Un modello ERB utilizza il .html.erb estensione.
Nella maggior parte dei casi utilizzerai due marcatori di tag, ognuno dei quali determina un modo specifico di elaborazione e gestione del codice incorporato.
Un tag con il segno di uguale <%= %> indica che il codice incorporato è un'espressione e che il risultato del codice deve essere sostituito nell'output durante il rendering del modello.
L'altro tag senza segno di uguale <%%> indica al renderer che il risultato del codice non deve essere sostituito o stampato nell'output.
Ogni controller nella tua applicazione Rails ha una sottodirectory corrispondente in app/visualizzazionie ogni azione in un controller ha un corrispondente .html.erb file in quella sottocartella.
Dare un'occhiata a app/visualizzazioni dell'app Todo che stai creando. Troverai una sottocartella denominata liste_di_cose contenente .html.erb file con nomi corrispondenti alle azioni nel Liste di cose da fare controllore.
Rails: ActiveRecord, Active Record Pattern e ORM
ActiveRecord è l'implementazione in Ruby del pattern Active Record. In questo pattern, una classe rappresenta una tabella di database e un'istanza della classe rappresenta una riga di quella tabella.
ActiveRecord è comunemente indicato come un ORM (Object Relational Map)ping) layer, una tecnica che ti permette di gestire il tuo database utilizzando un linguaggio con cui hai più familiarità. È indipendente dal database, quindi puoi passare facilmente da un database all'altro, ad esempio, SQLite, MySQL, PostgreSQL, SQL Server o Oracle — utilizzando lo stesso codice e la stessa logica.
Ad esempio, per ottenere un array contenente tutte le liste Todo presenti nella tua applicazione, non è necessario scrivere codice che apra una connessione, esegua una query SQL SELECT e converta il risultato.
Basta digitare TodoList.alle ActiveRecord restituisce l'array riempito con oggetti TodoList che puoi utilizzare a tuo piacimento.
Tutto ciò che devi fare è impostare la configurazione in config / database.ymlActiveRecord gestisce le differenze tra i sistemi di database. Quando si passa da un database all'altro, non è necessario riscrivere il codice.
Tu ti concentri sulla logica applicativa e ActiveRecord si occupa dei dettagli di basso livello relativi alla connessione al database. Utilizza convenzioni di denominazione per mappare i modelli alle tabelle del database.
Rails pluralizza i nomi delle classi del tuo modello per trovare la tabella del database corrispondente. Quindi, per una classe Lista di cose da fare, ActiveRecord utilizza una tabella di database chiamata liste_di_cose.
Ferrovie – Migrazioni
Una migrazione Rails è uno script che si utilizza per far evolvere il database della propria applicazione. Serve per configurare o modificare il database senza dover scrivere manualmente codice SQL.
Utilizza Ruby per definire le modifiche allo schema del database e consente di utilizzare il controllo di versione per mantenere il database sincronizzato tra i diversi ambienti.
Le migrazioni Rails utilizzano un linguaggio specifico di dominio (DSL) Ruby. Questo funge da assolutotracConsente di utilizzare o modificare il motore del database in base alle proprie esigenze.
Le migrazioni possono essere condivise con chiunque lavori all'applicazione e possono anche essere annullate per revocare le modifiche. Si tratta di un robusto meccanismo di sicurezza, quindi non c'è bisogno di preoccuparsi di causare danni permanenti al database.
Rails – Associazioni ActiveRecord
Una connessione tra due modelli ActiveRecord è nota come associazione. Le associazioni semplificano notevolmente l'esecuzione di operazioni sui record correlati nel codice. Esistono quattro categorie comuni.
Uno a uno: un record contiene precisamente un'istanza di un altro modello. Un buon esempio è un profilo utente: un utente ha un solo profilo. Utilizza il ha_uno parola chiave.
Uno a molti: l'associazione più comune: un modello ha zero o più istanze di un altro modello. Usa il ha_molti parola chiave per denotare questa associazione.
Molti a molti: È un po' più complicato. ActiveRecord offre due modi per gestirlo: ha_e_appartiene_a_molti and ha_molti :attraverso, che consente di accedere al modello di join definito in una tabella separata.
Polimorfico da uno a molti: Un'associazione più avanzata in Rails. Definisce un modello che può appartenere a molti modelli diversi all'interno di una singola associazione.
Rails – Convalide ActiveRecord
La convalida aiuta a garantire che i dati siano corretti, perché lavorare con dati errati è rischioso e può costare denaro alla tua azienda.
La validazione fornisce inoltre un ulteriore livello di sicurezza contro gli utenti malintenzionati che tentano di inserire dati dannosi nel database. Rails offre un'API pulita di helper di validazione in ActiveRecord che mantengono il database pulito, sicuro e privo di errori.
Le validazioni di ActiveRecord vengono eseguite sugli oggetti del modello prima del salvataggio nel database, il che li rende più affidabili e conformi alle migliori pratiche.
I seguenti metodi di ActiveRecord attivano le convalide quando vengono chiamati sugli oggetti del modello: crea, crea!, salva, salva!, aggiorna e aggiorna!. Le versioni bang (crea!, salva! e aggiorna!) generano un'eccezione se il record non è valido, mentre le versioni senza bang restituiscono false.
Gli helper di validazione ActiveRecord più comuni sono:
- Conferma: Verifica che due campi abbiano lo stesso valore, ad esempio password e conferma password. Viene utilizzato insieme all'helper di convalida della presenza.
- Presenza: verifica che il campo non sia vuoto.
- Unicità: Garantisce un valore univoco per un campo, ad esempio il nome utente.
- Lunghezza: impone un limite alla lunghezza dei caratteri di un campo.
È inoltre possibile creare la propria convalida personalizzata utilizzando convalidare metodo e passandogli il nome di un metodo di convalida personalizzato.
Controlla il modello errori Questo oggetto ti permette di scoprire perché una convalida non è andata a buon fine. Ti fornisce tutto il necessario per rendere la tua applicazione più sicura e protetta, consentendo l'accesso al database solo a dati validi.
Rotaie – ActionController
Il controller Rails è il centro della tua applicazione web. Facilita e coordina la comunicazione tra l'utente, i modelli e le visualizzazioni.
Le tue classi controller ereditano da Controller dell'applicazione, che contiene codice eseguibile in tutti gli altri controller e che a sua volta eredita da ActionController::Base.
Il controller fornisce quanto segue alla tua applicazione:
- Instrada le richieste esterne verso azioni interne.
- Gestisce la cache, offrendo un incremento delle prestazioni alla tua applicazione.
- Gestisce i metodi di supporto che estendono le funzionalità dei modelli di visualizzazione e gestisce anche le sessioni utente, offrendo agli utenti un'esperienza fluida.
Binari – Configurazioni
È possibile configurare componenti come inizializzatori, risorse, generatori e middleware utilizzando gli inizializzatori e i file di configurazione dell'applicazione Rails nel config directory. File come config/application.rb, config/environments/development.rbe config/environments/test.rb vengono utilizzati qui. Puoi anche aggiungere impostazioni personalizzate per la tua applicazione.
Rails – Debug
Durante la creazione dell'applicazione, sarà necessario eseguire il debug del codice. Rails semplifica questo processo con byebug gemma. Puoi avviare una sessione di debug inserendo la parola chiave byebug in qualsiasi punto del codice della tua applicazione.
Questo interrompe temporaneamente l'esecuzione in quel punto. La gemma byebug offre diversi comandi. I più utili sono:
- prossimo: passa alla riga di codice successiva, saltaping tutti i metodi richiamati dalla riga corrente.
- passo: simile a GENERAZIONEma esegue passaggi in ciascun metodo invocato.
- rompere: interrompe l'esecuzione del codice.
- Continua: continua l'esecuzione del codice.
Sono disponibili altri strumenti di debug, come ad esempio fare levaOffrono tutte funzionalità simili con una sintassi leggermente diversa. Le gemme di debug non dovrebbero essere utilizzate in produzione, poiché comportano rischi per l'applicazione e una cattiva esperienza per gli utenti.
I file di log possono essere esaminati per individuare errori in produzione e gestiti di conseguenza. È inoltre consigliabile seguire un approccio di sviluppo guidato dai test (TDD) durante la creazione dell'applicazione per garantire che tutto funzioni correttamente prima del rilascio in produzione.













