Hvad er Scaffolding i Ruby on Rails?

Du er måske ved at lære Rails & og læser, at du skal oprette en “scaffold” for at få din Rails-applikation i gang…

Nemt!

Du kan gøre dette ved hjælp af kommandoen rails g scaffold.

Men hvad er et stillads?

“Stillads er en midlertidig struktur, der bruges til at støtte et arbejdshold for at hjælpe med opførelse, vedligeholdelse og reparation af bygninger, broer og alle andre menneskeskabte konstruktioner.” – Wikipedia

Oversat til Rails:

Et stillads er et sæt automatisk genererede filer, som udgør den grundlæggende struktur i et Rails-projekt.

Disse filer omfatter:

  • En controller
  • En model
  • Views for hver standard controllerhandling (index, edit, show, new)

En ny rute.

Og en migration for at forberede din database.

Lad os se et eksempel!

Sådan bruger du Rails Scaffold-kommandoen

Et eksempel på stilladsering af et projekt til et websted om bøger ville se sådan her ud.

rails g scaffold books

Du bør se en masse tekst rulle forbi, som beskriver de filer, der oprettes.

Dette eksempel opretter:

  • En BooksController
  • En Book model
  • En ny resources :books rute, der tilføjes til din config/routes.rb fil
  • Et sæt testrelaterede filer
  • Se filer under app/views/books (fem i alt)

Ja.

Det er en masse ting.

Hvis du ønsker at fortryde denne stilladsering, lige efter at du har oprettet den, kan du bruge følgende kommando.

rails d scaffold books

Hvor “d” betyder “destroy”.

Husk, at dette vil SLETTE de filer, der er oprettet af stilladseringsprocessen.

Nu:

Hvor du kan bruge din scaffoldede kode, skal du køre dine migreringer for at opdatere dit databaseskema.

Brug kommandoen rails db:migrate.

Hvis der ikke vises nogen fejlmeddelelser, er du klar! Du har en grundstruktur til din nye Rails-applikation eller til en ny funktion, der har brug for en ny model, views & tilsvarende controller.

Næste:

Kør rails server.

Åbn din browser til localhost:3000/books & du burde kunne se resultaterne!

Rails Scaffolding med ekstra felter

Som standard…

Din model får kun tidsstempelfelter, hvilket betyder, at de eneste oplysninger, du kan registrere om dine bøger (eller hvilken model, du arbejder med), er det tidspunkt, hvor de blev oprettet eller opdateret.

Sådan kan du lave stillads med ekstra felter:

rails g scaffold books title:string author:string publication_year:integer

Hvis du genererer dit stillads på denne måde, har du 3 felter at arbejde med:

En titel, en forfatter og et udgivelsesår.

Det er lidt mere interessant end blot at have databasens tidsstempler.

Btw.

Dette er den samme syntaks, som vi bruger til at oprette migreringer med rails g migration.

Generering af specifikke komponenter

Scaffolding skaber ting, du måske ikke har brug for eller ønsker lige nu.

Men Rails er rart.

Du kan oprette individuelle komponenter, f.eks. controllere, ved hjælp af kommandoen rails g (g for generate).

Eksempler:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (opretter model + migration)
  • rails g migration CreateBook title:string year:integer (opretter kun migration)

En af de store fordele ved at bruge en scaffolding-kommando er, at alle filer oprettes med de korrekte navnekonventioner, så man undgår mærkelige fejlmeddelelser. Det sparer dig også for arbejdet med at skulle oprette disse filer manuelt.

Btw….

Det betragtes som god praksis at slette automatisk genererede filer, som du ikke har planer om at bruge. Så når du har brugt en generator som “g controller”, skal du gennemgå listen over oprettede filer & fjern de filer, som du ikke har brug for.

Summary

Du har lært om stilladsering i Ruby, så du hurtigt kan starte en ny Rails-applikation til at øve dig med.

Når du lærer mere, vil du måske give slip på scaffolding.

Men du kan stadig generere individuelle controllere, modeller eller view-filer, når du har brug for dem.

Tak for at læse! 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.