Mi az a Scaffolding a Ruby on Rails-ben?

Elképzelhető, hogy a Rails tanulása közben & olvastad, hogy a Rails alkalmazásod elindításához létre kell hoznod egy “scaffold”-ot…

Egyszerű!

Ezt a rails g scaffold parancs segítségével teheted meg.

De mi is az az állványzat?

“Az állványzat egy ideiglenes szerkezet, amelyet a munkások megtámasztására használnak, hogy segítsék az épületek, hidak és minden más ember alkotta építmény építését, karbantartását és javítását.”. – Wikipedia

Rails nyelvre lefordítva:

A scaffold olyan automatikusan generált fájlok halmaza, amely egy Rails projekt alapszerkezetét képezi.

Ezek a fájlok a következőket tartalmazzák:

  • Egy vezérlő
  • Egy modell
  • Nézetek minden standard vezérlő művelethez (index, edit, show, new)

Egy új útvonal.

És egy migráció az adatbázis előkészítéséhez.

Lássunk egy példát!

How to Use The Rails Scaffold Command

Egy példa a könyvekről szóló weboldal projektjének felépítésére így nézne ki.

rails g scaffold books

Egy csomó szöveget kell látnia, ami a létrehozott fájlokat részletezi.

Ez a példa létrehozza:

  • A BooksController
  • A Book modellt
  • Egy új resources :books útvonalat ad hozzá a config/routes.rb fájljához
  • Egy sor teszteléssel kapcsolatos fájlt
  • Nézze meg a app/views/books alatti fájlokat (összesen ötöt)

Igen.

Ez egy csomó dolog.

Ha ezt az állványzatot vissza akarja vonni, közvetlenül a létrehozása után a következő parancsot használhatja.

rails d scaffold books

Ahol a “d” azt jelenti, hogy “destroy”.

Ne feledd, hogy ez a scaffolding által létrehozott fájlokat DELETE fogja törölni.

Most:

Mielőtt használhatná a scaffoldolt kódját, el kell indítania a migrációkat, hogy frissítse az adatbázis sémáját.

A rails db:migrate parancsot használja.

Ha nem jelenik meg hibaüzenet, készen áll! Megvan az új Rails-alkalmazásod alapstruktúrája, vagy egy új funkcióhoz, amelyhez új modellre, nézetekre & megfelelő vezérlőre van szükséged.

Következő:

Futtasd a rails server.

Nyisd meg a böngésződet a localhost:3000/books & oldalon, és látnod kell az eredményeket!

Rails Scaffolding With Extra Fields

Az alapértelmezés szerint…

A modelled csak időbélyegző mezőket kap, ami azt jelenti, hogy az egyetlen információ, amit a könyveidről (vagy bármilyen modellről, amivel dolgozol) rögzíthetsz, az a létrehozás vagy frissítés időpontja.

Íme, így készíthetsz állványt extra mezőkkel:

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

Ha így generálod az állványt, akkor 3 mezővel dolgozhatsz:

A cím, a szerző és a megjelenési év.

Ez egy kicsit érdekesebb, mintha csak az adatbázis időbélyegei lennének.

Mellesleg.

Ez ugyanaz a szintaxis, amit a migrációk létrehozásához használunk a rails g migration segítségével.

Specifikus komponensek generálása

Az állványzat olyan dolgokat hoz létre, amikre most nem biztos, hogy szükséged van vagy szeretnél.

De a Rails szép.

Egyedi komponenseket, például vezérlőket hozhatsz létre a rails g (g mint generate) parancs segítségével.

Példák:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (modell + migráció létrehozása)
  • rails g migration CreateBook title:string year:integer (csak migráció létrehozása)

A scaffolding parancs használatának egyik nagy előnye, hogy minden fájl a megfelelő elnevezési konvenciókat használva jön létre, így elkerülhetők a furcsa hibaüzenetek. Emellett megspórolja a munkát, hogy manuálisan kelljen létrehozni ezeket a fájlokat.

Mellesleg…

A jó gyakorlatnak számít, hogy törölje azokat az automatikusan generált fájlokat, amelyeket nem tervez használni. Tehát miután használtál egy olyan generátort, mint a “g controller”, nézd át a létrehozott fájlok listáját & távolítsd el azokat, amelyekre nincs szükséged.

Összefoglaló

Megtanultad a Rubyban a scaffoldingot, így gyorsan el tudsz indítani egy új Rails alkalmazást, amivel gyakorolhatsz.

Amint többet tanulsz, lehet, hogy el akarod engedni a scaffoldingot.

De továbbra is létrehozhatsz egyedi vezérlőket, modelleket vagy nézetfájlokat, ha szükséged van rájuk.

Köszönjük az olvasást! 🙂

Köszönjük az olvasást!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.