Ruby on Rails Tutorial
Iniziare con Ruby on Rails
Ricerca…
Osservazioni
Ruby on Rails (RoR), o Rails, è un framework di applicazioni web popolare open source. Rails utilizza Ruby, HTML, CSS e JavaScript per creare un'applicazione Web che gira su un server web. Rails utilizza il pattern model-view-controller (MVC) e fornisce una serie completa di librerie dal database fino alla vista.
Versioni
Versione | Data di rilascio |
---|---|
5.1.2 | 2017/06/26 |
5.0 | 2016/06/30 |
4.2 | 2014/12/19 |
4.1 | 2014/04/08 |
4.0 | 2013/06/25 |
3.2 | 2012-01-20 |
3.1 | 2011-08-31 |
3.0 | 2010-08-29 |
2.3 | 2009-03-16 |
2.0 | 2007-12-07 |
1.2 | 2007-01-19 |
1.1 | 2006-03-28 |
1.0 | 2005-12-13 |
Creazione di un'applicazione Ruby on Rails
Questo esempio presuppone che Ruby e Ruby on Rails siano già stati installati correttamente. Altrimenti, puoi trovare come farlo qui .
Apri una riga di comando o un terminale. Per generare una nuova applicazione di rotaie, usa il comando rails new seguito dal nome della tua applicazione:
$ rails new my_app
Se si desidera creare l'applicazione Rails con una versione specifica di Rails, è possibile specificarla al momento della generazione dell'applicazione. Per farlo, usa le rails _version_ new
seguito dal nome dell'applicazione:
$ rails _4.2.0_ new my_app
Ciò creerà un'applicazione Rails chiamata MyApp
in una directory my_app
e installerà le dipendenze gemme già menzionate in Gemfile
utilizzando l' bundle install
.
Per passare alla directory dell'app appena creata, utilizzare il comando cd
, che rappresenta la change directory
.
$ cd my_app
La directory my_app
ha un numero di file e cartelle generati automaticamente che costituiscono la struttura di un'applicazione Rails. Di seguito è riportato un elenco di file e cartelle che vengono creati per impostazione predefinita:
Cartella di file | Scopo |
---|---|
app / | Contiene controller, modelli, viste, helper, mailer e risorse per la tua applicazione. |
bidone/ | Contiene lo script rails che avvia la tua app e può contenere altri script che utilizzi per impostare, aggiornare, distribuire o eseguire la tua applicazione. |
config / | Configura percorsi, database e altro della tua applicazione. |
config.ru | Configurazione rack per server basati su rack utilizzati per avviare l'applicazione. |
db / | Contiene lo schema del database corrente e le migrazioni del database. |
Gemfile Gemfile.lock | Questi file ti permettono di specificare quali dipendenze gem sono necessarie per la tua applicazione Rails. Questi file sono usati dalla gemma di Bundler. |
lib / | Moduli estesi per la tua applicazione. |
log / | File di registro dell'applicazione. |
pubblico/ | L'unica cartella vista dal mondo così com'è. Contiene file statici e risorse compilate. |
Rakefile | Questo file individua e carica attività che possono essere eseguite dalla riga di comando. Le definizioni delle attività sono definite in tutti i componenti di Rails. |
README.md | Questo è un breve manuale di istruzioni per la tua applicazione. Dovresti modificare questo file per dire agli altri cosa fa la tua applicazione, come configurarla ecc |
test/ | Test unitari, infissi e altri apparati di prova. |
temp / | File temporanei (come i file cache e pid). |
vendor / | Un posto per tutto il codice di terze parti. In una tipica applicazione Rails questo include gemme vendute. |
Ora devi creare un database dal tuo file database.yml
:
rake db:create
# OR
rails db:create
rake db:create
Ora che abbiamo creato il database, dobbiamo eseguire le migrazioni per configurare le tabelle:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
Per avviare l'applicazione, è necessario attivare il server:
$ rails server
# OR
$ rails s
Per impostazione predefinita, i binari avvieranno l'applicazione alla porta 3000. Per avviare l'applicazione con un numero di porta diverso, dobbiamo accendere il server come,
$ rails s -p 3010
Se navighi su http: // localhost: 3000 nel tuo browser, vedrai una pagina di benvenuto di Rails, che mostra che la tua applicazione è ora in esecuzione.
Se genera un errore, potrebbero esserci diversi possibili problemi:
- C'è un problema con il
config/database.yml
- Hai dipendenze nel tuo
Gemfile
che non sono state installate. - Hai migrazioni in sospeso. Esegui
rails db:migrate
- Nel caso in cui ci si sposta al
rails db:rollback
migrazione precedenterails db:rollback
Se ciò genera ancora un errore, allora dovresti controllare il tuo config/database.yml
Crea una nuova app Rails con la tua scelta di database e includendo lo strumento di test RSpec
Rails utilizza sqlite3
come database predefinito, ma è possibile generare una nuova applicazione rails con un database a scelta. Basta aggiungere l'opzione -d
seguita dal nome del database.
$ rails new MyApp -T -d postgresql
Questa è una lista (non esaustiva) di opzioni di database disponibili:
- mysql
- oracolo
- PostgreSQL
- sqlite3
- FrontBase
- ibm_db
- server SQL
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- JDBC
Il comando -T indica di saltare l'installazione di minitest. Per installare una suite di test alternativa come RSpec , modifica il Gemfile e aggiungi
group :development, :test do
gem 'rspec-rails',
end
Quindi avviare il seguente comando dalla console:
rails generate rspec:install
Generazione di un controller
Per generare un controller (ad esempio Posts
), accedere alla directory del progetto da una riga di comando o terminale ed eseguire:
$ rails generate controller Posts
Puoi abbreviare questo codice sostituendo generate
con g
, ad esempio:
$ rails g controller Posts
Se apri l'app / controller / posts_controller.rb appena generata vedrai un controller senza azioni:
class PostsController < ApplicationController
# empty
end
È possibile creare metodi predefiniti per il controller passando gli argomenti del nome del controller.
$ rails g controller ControllerName method1 method2
Per creare un controller all'interno di un modulo, specificare il nome del controller come percorso come parent_module/controller_name
. Per esempio:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
Questo genererà i seguenti file:
Controller: app/controllers/credit_cards_controller.rb
Test: test/controllers/credit_cards_controller_test.rb
Views: app/views/credit_cards/debit.html.erb [...etc]
Helper: app/helpers/credit_cards_helper.rb
Un controller è semplicemente una classe che è stata definita per ereditare da ApplicationController
.
È all'interno di questa classe che definirai i metodi che diventeranno le azioni per questo controller.
Generare una risorsa con Scaffolds
Da guides.rubyonrails.org:
Invece di generare direttamente un modello. . . sistemiamo un'impalcatura. Uno scaffold in Rails è un set completo di modello, migrazione del database per quel modello, controller per manipolarlo, visualizzazioni per visualizzare e manipolare i dati e una suite di test per ciascuno dei precedenti.
Ecco un esempio di scaffolding di una risorsa chiamata Task
con un nome di stringa e una descrizione di testo:
rails generate scaffold Task name:string description:text
Questo genererà i seguenti file:
Controller: app/controllers/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Views: app/views/tasks
app/views/tasks/index.html.erb
app/views/tasks/edit.html.erb
app/views/tasks/show.html.erb
app/views/tasks/new.html.erb
app/views/tasks/_form.html.erb
Helper: app/helpers/tasks_helper.rb
JS: app/assets/javascripts/tasks.coffee
CSS: app/assets/stylesheets/tasks.scss
app/assets/stylesheets/scaffolds.scss
esempio per eliminare i file generati dallo scaffold per la risorsa chiamata Task
rails destroy scaffold Task
Crea una nuova app di Rails con un adattatore per database non standard
Rails viene fornito di default con ActiveRecord
, un ORM (Object Relational Mapping) derivato dal pattern con lo stesso nome .
Come un ORM, è costruito per gestire il mapping relazionale e, più precisamente, gestendo le richieste SQL per voi, quindi la limitazione solo ai database SQL.
Tuttavia, puoi ancora creare un'app Rails con un altro sistema di gestione del database:
- crea semplicemente la tua app senza registrazione attiva
$ rails app new MyApp --skip-active-record
- aggiungi il tuo sistema di gestione del database in
Gemfile
gem 'mongoid', '~> 5.0'
-
bundle install
e segui i passaggi di installazione dal database desiderato.
In questo esempio, mongoid
è un object mapping per MongoDB
e - come molte altre gemme di database create per rails - eredita anche da ActiveModel
allo stesso modo di ActiveRecord
, che fornisce un'interfaccia comune per molte funzionalità come convalide, callback, traduzioni, ecc. .
Altri adattatori di database includono, ma non sono limitati a:
DataMapper
sequel-rails
Creazione di API Rails in JSON
Questo esempio presume che tu abbia esperienza nella creazione di applicazioni Rails.
Per creare un'app per sole API in Rails 5, esegui
rails new name-of-app --api
Aggiungi active_model_serializers in Gemfile
gem 'active_model_serializers'
installare il pacchetto nel terminale
bundle install
Impostare la scheda ActiveModelSerializer
da utilizzare :json_api
# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )
Genera un nuovo scaffold per la tua risorsa
rails generate scaffold Task name:string description:text
Questo genererà i seguenti file:
Controller: app / controller / tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Migration: db/migrate/_create_tasks.rb
Model: app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb
Installazione di Rails
Installazione di Rails su Ubuntu
Su una ubuntu pulita, l'installazione di Rails dovrebbe essere diretta
Aggiornamento di pacchetti ubuntu
sudo apt-get update
sudo apt-get upgrade
Installa dipendenze Ruby e Rails
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
Installare il gestore delle versioni di ruby. In questo caso, quello facile sta usando rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Installazione di Ruby Build
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Riavvia Shell
exec $SHELL
Installa il rubino
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
Installazione delle guide
gem install rails
Installazione di Rails su Windows
Passaggio 1: installazione di Ruby
Abbiamo bisogno del linguaggio di programmazione Ruby installato. Possiamo usare una versione precompilata di Ruby chiamata RubyInstaller.
- Scarica ed esegui Ruby Installer da rubyinstaller.org .
- Esegui il programma di installazione. Seleziona "Aggiungi eseguibili Ruby al tuo PATH", quindi installa.
- Per accedere a Ruby, vai al menu di Windows, fai clic su Tutti i programmi, scorri verso il basso fino a Ruby e fai clic su "Start Command Prompt with Ruby". Si aprirà un terminale del prompt dei comandi. Se digiti
ruby -v
e premi Invio, dovresti vedere il numero di versione di Ruby che hai installato.
Passaggio 2: Kit di sviluppo di rubino
Dopo aver installato Ruby, possiamo provare a installare Rails. Ma alcune delle librerie di Rails dipendono dalla necessità di alcuni strumenti di compilazione per poter essere compilate e Windows manca di tali strumenti per impostazione predefinita. È possibile identificarlo se si riscontra un errore durante il tentativo di installare Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
Per risolvere questo problema, è necessario installare il Kit di sviluppo di Ruby.
- Scarica il DevKit
- Esegui il programma di installazione.
- Dobbiamo specificare una cartella in cui installeremo il DevKit in modo permanente. Consiglio di installarlo nella root del tuo disco rigido, in
C:\RubyDevKit
. (Non utilizzare spazi nel nome della directory.)
Ora dobbiamo rendere disponibili gli strumenti DevKit a Ruby.
- Nel prompt dei comandi, passare alla directory DevKit.
cd C:\RubyDevKit
o qualsiasi altra directory in cui l'hai installato. - Abbiamo bisogno di eseguire uno script Ruby per inizializzare l'installazione di DevKit. Digitare
ruby dk.rb init
. Ora diremo quello stesso script per aggiungere il DevKit alla nostra installazione di Ruby. Digitareruby dk.rb install
.
DevKit ora dovrebbe essere disponibile per gli strumenti di Ruby da utilizzare quando si installano nuove librerie.
Passaggio 3: Rails
Ora possiamo installare Rails. Rails viene fornito come una gemma di Ruby. Nel tuo prompt dei comandi, digita:
gem install rails
Una volta premuto Invio, il programma gem
scaricherà e installerà quella versione della gemma Rails, insieme a tutte le altre gemme di cui Rails dipende.
Passaggio 4: Node.js
Alcune librerie da cui dipende Rails richiedono l'installazione di un runtime JavaScript. Installiamo Node.js in modo che quelle librerie funzionino correttamente.
- Scarica il programma di installazione di Node.js da qui .
- Al termine del download, visitare la cartella dei download ed eseguire il
node-v4.4.7.pkg
installazionenode-v4.4.7.pkg
. - Leggere il contratto di licenza completo, accettare i termini e fare clic su Avanti attraverso il resto della procedura guidata, lasciando tutto come predefinito.
- Potrebbe apparire una finestra che chiede se si desidera consentire all'applicazione di apportare modifiche al computer. Fai clic su "Sì".
- Al termine dell'installazione, sarà necessario riavviare il computer in modo che Rails possa accedere a Node.js.
Una volta riavviato il computer, non dimenticare di andare al menu di Windows, fare clic su "Tutti i programmi", scorrere verso il basso fino a Ruby e fare clic su "Start Command Prompt with Ruby".