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
generate
cong
.
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