Ruby on Rails
Rails genera comandi
Ricerca…
introduzione
Utilizzo: le rails generate GENERATOR_NAME [args] [options] .
Utilizzare le rails generate per elencare i generatori disponibili. Alias: rails g .
Parametri
| Parametro | Dettagli |
|---|---|
-h / --help | Ottieni aiuto su qualsiasi comando del generatore |
-p / --pretend | Modalità di finzione: lancia il generatore ma non crea o modifica alcun file |
field:type | 'nome-campo' è il nome della colonna da creare e 'tipo' è il tipo di dati della colonna. I possibili valori per "tipo" nel field:type sono indicati nella sezione Commenti. |
Osservazioni
I possibili valori per "tipo" nel field:type sono:
| Tipo di dati | Descrizione |
|---|---|
:string | Per pezzi di testo più piccoli (di solito ha un limite di caratteri di 255) |
:text | Per pezzi di testo più lunghi, come un paragrafo |
:binary | Memorizzazione di dati tra cui immagini, audio e video |
:boolean | Memorizzazione di valori veri o falsi |
:date | Solo la data |
:time | Solo il tempo |
:datetime | Data e ora |
:float | Conservare i galleggianti senza precisione |
:decimal | Conservare i galleggianti con precisione |
:integer | Memorizzazione di numeri interi |
Rotaie genera modello
Per generare un modello ActiveRecord che crea automaticamente le migrazioni di db corrette e i file di test di boilerplate per il modello, immettere questo comando
rails generate model NAME column_name:column_type
'NOME' è il nome del modello. 'campo' è il nome della colonna nella tabella DB e 'tipo' è il tipo di colonna (es. name:string o body:text ). Controlla la sezione Commenti per un elenco dei tipi di colonna supportati.
Per configurare chiavi esterne, aggiungere belongs_to:model_name .
Quindi, supponiamo che tu voglia configurare un modello User che abbia un username , un username email e appartenga a una School , dovrai digitare quanto segue
rails generate model User username:string email:string school:belongs_to
rails g è una scorciatoia per rails generate . Questo produrrebbe lo stesso risultato
rails g model User username:string email:string school:belongs_to
Rails genera migrazione
È possibile generare un file di migrazione delle guide dal terminale utilizzando il seguente comando:
rails generate migration NAME [field[:type][:index] field[:type][:index]] [options]
Per un elenco di tutte le opzioni supportate dal comando, è possibile eseguire il comando senza argomenti, in quanto i rails generate migration .
Ad esempio, se desideri aggiungere i campi first_name e last_name alla tabella users , puoi eseguire:
rails generate migration AddNamesToUsers last_name:string first_name:string
Rails creerà il seguente file di migrazione:
class AddNamesToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :last_name, :string
add_column :users, :first_name, :string
end
end
Ora, applica le migrazioni in sospeso al database eseguendo quanto segue nel terminale:
rake db:migrate
rails db:migrate
Nota: per una digitazione ancora inferiore, è possibile sostituire
generatecong.
Rails Generate Scaffold
NOTA BENE : Scaffolding non è raccomandato a meno che non sia per applicazioni / test CRUD molto convenzionali. Questo può generare un sacco di file (viste / modelli / controller) che non sono necessari nella tua applicazione web causando così mal di testa (cattivo :().
Per generare uno scaffold completamente funzionante per un nuovo oggetto, inclusi modello, controllore, viste, risorse e test, utilizzare il comando rails g scaffold .
$ rails g scaffold Widget name:string price:decimal
invoke active_record
create db/migrate/20160722171221_create_widgets.rb
create app/models/widget.rb
invoke test_unit
create test/models/widget_test.rb
create test/fixtures/widgets.yml
invoke resource_route
route resources :widgets
invoke scaffold_controller
create app/controllers/widgets_controller.rb
invoke erb
create app/views/widgets
create app/views/widgets/index.html.erb
create app/views/widgets/edit.html.erb
create app/views/widgets/show.html.erb
create app/views/widgets/new.html.erb
create app/views/widgets/_form.html.erb
invoke test_unit
create test/controllers/widgets_controller_test.rb
invoke helper
create app/helpers/widgets_helper.rb
invoke jbuilder
create app/views/widgets/index.json.jbuilder
create app/views/widgets/show.json.jbuilder
invoke assets
invoke javascript
create app/assets/javascripts/widgets.js
invoke scss
create app/assets/stylesheets/widgets.scss
Quindi puoi eseguire rake db:migrate per configurare la tabella del database.
Quindi puoi visitare http: // localhost: 3000 / widgets e vedrai uno scaffold CRUD perfettamente funzionante.
Rails Genera controller
possiamo creare un nuovo controller con il comando rails g controller .
$ bin/rails generate controller controller_name
Il generatore di controller prevede parametri sotto forma di generate controller ControllerName action1 action2 .
Di seguito viene creato un controller Greetings con un'azione di Ciao.
$ bin/rails generate controller Greetings hello
Vedrai il seguente output
create app/controllers/greetings_controller.rb
route get "greetings/hello"
invoke erb
create app/views/greetings
create app/views/greetings/hello.html.erb
invoke test_unit
create test/controllers/greetings_controller_test.rb
invoke helper
create app/helpers/greetings_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/greetings.coffee
invoke scss
create app/assets/stylesheets/greetings.scss
Questo genera il seguente
| File | Esempio |
|---|---|
| File di controllo | greetings_controller.rb |
| Vedi il file | hello.html.erb |
| File di test funzionale | greetings_controller_test.rb |
| Visualizza Helper | greetings_helper.rb |
| File JavaScript | greetings.coffee |
Aggiungerà anche percorsi per ogni azione in routes.rb