alexpchin/Rails_Generating_and_Scaffolding.md

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:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.