Wat is Scaffolding in Ruby on Rails?

Je bent misschien Rails aan het leren &je leest dat je een “scaffold” moet maken om je Rails applicatie op te starten…

Easy!

Je kunt dit doen met behulp van het rails g scaffold commando.

Maar wat is een steiger?

“Steigers zijn tijdelijke constructies die worden gebruikt om een werkploeg te ondersteunen bij de bouw, het onderhoud en de reparatie van gebouwen, bruggen en alle andere door de mens gemaakte constructies.” – Wikipedia

Vertaald naar Rails:

Een steiger is een set automatisch gegenereerde bestanden die de basisstructuur van een Rails-project vormt.

Deze bestanden omvatten:

  • Een controller
  • Een model
  • Views voor elke standaard controlleractie (index, edit, show, new)

Een nieuwe route.

En een migratie om je database voor te bereiden.

Laten we een voorbeeld zien!

Hoe gebruik je het Rails Scaffold Command

Een voorbeeld van een project voor een website over boeken zou er als volgt uitzien.

rails g scaffold books

Je zou een heleboel tekst voorbij moeten zien rollen, die details geeft over de bestanden die worden gemaakt.

Dit voorbeeld creëert:

  • Een BooksController
  • Een Book model
  • Een nieuwe resources :books route toegevoegd aan uw config/routes.rb bestand
  • Een set van test-gerelateerde bestanden
  • Bekijk bestanden onder app/views/books (vijf in totaal)

Ja.

Dat is een hoop spul.

Als je deze steiger ongedaan wilt maken, direct nadat je hem hebt gemaakt, kun je het volgende commando gebruiken.

rails d scaffold books

Waarbij “d” “destroy” betekent.

Bedenk wel dat je hiermee de bestanden die door het steigerproces zijn aangemaakt, VERWIJDERT.

Nu:

Voordat je je scaffolded code kunt gebruiken, moet je je migraties uitvoeren om je database schema te updaten.

Gebruik het rails db:migrate commando.

Als er geen foutmeldingen verschijnen, ben je klaar! Je hebt een basis structuur voor je nieuwe Rails applicatie, of voor een nieuwe functie die een nieuw model, views & overeenkomstige controller nodig heeft.

Volgende:

Run rails server.

Open je browser naar localhost:3000/books & je zou in staat moeten zijn om de resultaten te zien!

Rails Scaffolding Met Extra Velden

Bestandaard…

Uw model krijgt alleen tijdstempelvelden, wat betekent dat de enige informatie die u kunt vastleggen over uw boeken (of met welk model u ook werkt), de tijd is waarop ze zijn gemaakt, of bijgewerkt.

Hier zie je hoe je scaffold met extra velden:

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

Als je je scaffolding zo genereert, heb je 3 velden om mee te werken.

Een titel, een auteur, en een publicatiejaar.

Dat is een beetje interessanter dan alleen de database timestamps.

Btw.

Dit is dezelfde syntax die we gebruiken voor het maken van migraties met rails g migration.

Generating Specific Components

Scaffolding creëert dingen die je nu misschien niet nodig hebt of wilt.

Maar Rails is leuk.

Je kunt individuele componenten maken, zoals controllers, met behulp van het rails g (g voor generate) commando.

Voorbeelden:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (creëert model + migratie)
  • rails g migration CreateBook title:string year:integer (creëert alleen migratie)

Een van de grote voordelen van het gebruik van een scaffolding commando is dat alle bestanden worden gemaakt met behulp van de juiste naamgeving conventies, waardoor vreemde foutmeldingen worden vermeden. Het bespaart je ook het werk om deze bestanden handmatig aan te maken.

Btw…

Het wordt beschouwd als een goede gewoonte om automatisch gegenereerde bestanden die je niet van plan bent te gebruiken, te verwijderen. Dus na het gebruik van een generator als “g controller”, bekijk dan de lijst met aangemaakte bestanden & verwijder de bestanden die je niet nodig hebt.

Samenvatting

Je hebt geleerd over scaffolding in Ruby, zodat je snel een nieuwe Rails applicatie kunt starten om mee te oefenen.

Naarmate je meer leert, wil je misschien scaffolding loslaten.

Maar je kunt nog steeds individuele controllers, modellen, of view bestanden genereren als je ze nodig hebt.

Dank voor het lezen! 🙂

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.