L’uso da parte di Rails di rigide convenzioni sui nomi significa che molto codice core DOVREBBE avere lo stesso formato, chiunque lo scriva? Potrebbe essere scritto da un amico, un collega o un computer… non dovrebbe avere importanza perché le stesse regole di Rails si applicano a tutti.
Questo significa che Rails può effettivamente fare alcuni compiti per voi!..
Venendo da un altro linguaggio come PHP, questo può sembrare magico.
Riferimento rapido:
rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references
###Rails generatorIl comando rails generate usa template progettati per convenzione per creare un sacco di cose utili. Eseguendo rails generate da solo si ottiene una lista di generatori disponibili:
rails generate
o per i super-hackers:
rails g
Ci sono un sacco di generatori:
Rails:
- asset
- controller
- generatore
- helper
- integration_test
- mailer
- migrazione
- modello
- osservatore
- performance_test
- risorsa
- scaffold
- scaffold_controller
- session_migration
- task
Caffè:
- coffee:assets
Jquery:
- jquery:install
Js:
- js:assets
##Scaffolding in Rails
Lo strumento di scaffolding di Rails è un modo veloce per generare alcuni dei principali pezzi di codice in un’applicazione. Questo fa risparmiare un sacco di tempo quando si vuole essere operativi velocemente! (È super cool!)
A seconda di ciò che vuoi creare, lo scaffolding può generare automaticamente tutti o una combinazione di:
migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript
Ci potrebbe essere qualche altro file che fa… Non sono sicuro che sia una lista completa!
##Scaffolding di un’intera risorsa
Stai facendo lo scaffolding di cose associate ad un oggetto (singolare)
Se vuoi fare lo scaffolding di un’applicazione, devi fare lo scaffolding di ogni risorsa all’interno di quell’applicazione. Se vuoi fare un’applicazione di blogging per esempio – potresti impalcatura l’intera risorsa Post:
rails g scaffold Post
Il nome della risorsa Post
deve essere:
- UpperCamelCase
- SINGULAR
Questo nome sarà il nome del modello, per esempio Post. Sarà anche il nome della classe del controllore (ma pluralizzato), per esempio PostsController E il nome della tabella (ma pluralizzato) per esempio posts
Dopo il nome della classe, puoi aggiungere le colonne della tabella e i loro tipi di dati.
rails g scaffold Post name:string title:string content:text
Questi nomi di colonne della tabella dovrebbero essere:
- lower_snake_case
- SINGULAR
Questo perché ogni elemento Post deve avere un valore memorizzato in ogni colonna.
Se si eseguisse questo scaffold, creerebbe tutti questi file:
Nel PostController, tutti i metodi RESTful saranno creati e avranno tutti i loro file di vista corrispondenti.
Dopo aver creato il file di migrazione, per fare la modifica al database ricordati di eseguire:
rake db:migrate
##Generare solo un controller
Controlla molti oggetti (quindi è plurale)
A volte, vuoi generare solo un controller.
rails g controller Comments
Il nome del controller deve essere:
- UpperCamelCase
- PLURALIZED
Questo perché un controller si occupa di molti esempi di un oggetto, quindi dovrebbe essere plurale.
Questo farà questi file:
Questo NON creerà un file migrazione o un file modello.
##Generare solo un modello
Stai generando il contorno di un oggetto (singolare)
Se vuoi solo creare un modello, puoi fare:
rails g model Comment
- UpperCamelCase
- SINGULAR
Puoi anche aggiungere i nomi delle colonne a questo se vuoi:
rails g model Comment commenter:string body:text article:references
Questi nomi di colonna della tabella dovrebbero essere:
- lower_snake_case
- SINGULAR
La generazione di un modello creerà questi file: