Rails’ brug af strenge navngivningskonventioner betyder, at meget af kernekoden SKAL være i samme format, uanset hvem der skriver den? Det kunne være skrevet af en ven, en kollega eller en computer … det burde være ligegyldigt, fordi de samme Rails-regler gælder for alle.
Det betyder, at Rails faktisk kan udføre nogle opgaver for dig! Det kan faktisk bygge ting og skrive kode på dine vegne…
Kommende fra et andet sprog som PHP kan dette virke som magi.
Hurtig reference:
rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references
###Rails generatorRails generateKommandoen Rails generate bruger skabeloner, der er designet efter konvention, til at skabe en hel masse nyttige ting. Hvis du kører rails generate i sig selv, får du en liste over tilgængelige generatorer:
rails generate
eller for super-hackere:
rails g
Der er en masse generatorer:
Rails:
- assets
- controller
- generator
- helper
- integration_test
- mailer
- migration
- model
- observer
- performance_test
- resource
- scaffold
- scaffold_controller
- session_migration
- session_migration
- task
Coffee:
- coffee:assets
Jquery:
- jquery:install
Js:
- js:assets
###Scaffolding i Rails
Rails’ scaffolding-værktøj er en hurtig måde at generere nogle af de vigtigste kodestykker i en applikation på. Det sparer en masse tid, når du ønsker at komme hurtigt i gang! (Det er super sejt!)
Afhængigt af hvad du ønsker at oprette, kan scaffolding automatisk generere alle eller en kombination af:
migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript
Der kan være et par filer mere, som det gør… Jeg er ikke sikker på, om det er en komplet liste!
###Stilladserer en hel ressource
Du stilladserer ting, der er tilknyttet et objekt (ental)
Hvis du vil stilladsere et program, skal du stilladsere hver enkelt ressource i det pågældende program. Hvis du f.eks. ville lave en blogging-applikation – kunne du stilladsere hele Post-ressourcen:
rails g scaffold Post
Ressourcens navn Post
skal være:
- UpperCamelCase
- SINGULAR
Dette navn skal være navnet på modellen, f.eks. Post. Det vil også være navnet på controllerklassen (men i flertal), f.eks. PostsController OG navnet på tabellen (men i flertal), f.eks. posts
Efter klassens navn kan du tilføje tabellens kolonner og deres datatyper.
rails g scaffold Post name:string title:string content:text
Disse tabelkolonners navne skal være:
- lower_snake_case
- SINGULAR
Dette skyldes, at det er meningen, at hvert Post-emne skal have én værdi gemt i hver kolonne.
Hvis du kørte dette stillads, ville det oprette disse alle filer:
Inden for PostController vil alle RESTful-metoderne blive oprettet, og de vil alle have deres tilsvarende visningsfiler.
Når du har oprettet migrationsfilen, skal du for at foretage ændringen i databasen huske at køre:
rake db:migrate
##Generering af blot en controller
Den styrer mange objekter (så den er i flertal)
Sommetider vil du blot generere en controller.
rails g controller Comments
Controller-navnet skal være:
- UpperCamelCase
- PLURALIZED
Det skyldes, at en controller styrer mange eksempler på et objekt, så det skal være i flertal.
Dette vil lave disse filer:
Dette vil IKKE oprette en migrationsfil eller en modelfil.
##Genererer kun en model
Du genererer skitsen af et objekt (ental)
Hvis du kun vil oprette en model, kan du gøre:
rails g model Comment
- UpperCamelCase
- SINGULAR
Du kan også tilføje kolonnenavnene til dette, hvis du vil:
rails g model Comment commenter:string body:text article:references
Disse tabel kolonnenavne skal være:
- lower_snake_case
- SINGULAR
Generering af en model vil skabe disse filer: