Mikä on Scaffolding in Ruby on Rails?

Olet ehkä opettelemassa Railsia & ja olet lukenut, että sinun täytyy luoda ”scaffold” saadaksesi Rails-sovelluksesi käyntiin…

helppoa!

Voit tehdä tämän komennolla rails g scaffold.

Mutta mikä on rakennusteline?

”Rakennusteline on tilapäinen rakenne, jota käytetään tukemaan työryhmää rakennusten, siltojen ja kaikkien muiden ihmisen tekemien rakenteiden rakentamisen, kunnossapidon ja korjaamisen apuna.” – Wikipedia

Käännettynä Railsiksi:

Teline on joukko automaattisesti luotuja tiedostoja, jotka muodostavat Rails-projektin perusrakenteen.

Nämä tiedostot sisältävät:

  • Valvontalaite
  • Malli
  • Näkymiä jokaiselle vakio-ohjaintoiminnolle (indeksi, muokkaus, näyttäminen, uusi)

Uusi reitti.

Ja migraatio tietokannan valmistelemiseksi.

Katsotaanpa esimerkki!

How to Use The Rails Scaffold Command

Esimerkki kirjoja käsittelevän verkkosivuston projektin rakennustelineestä näyttäisi seuraavalta.

rails g scaffold books

Sinun pitäisi nähdä paljon tekstiä vierittämässä ohi, jossa kerrotaan yksityiskohtaisesti luoduista tiedostoista.

Tässä esimerkissä luodaan:

  • A BooksController
  • A Bookmalli
  • Uusi resources :booksreitti lisätään config/routes.rb-tiedostoon
  • Sarja testaukseen liittyviä tiedostoja
  • Näkymätiedostot app/views/books:n alta (niitä on yhteensä viisi)

Ja.

Tässä on paljon tavaraa.

Jos haluat kumota tämän telineen heti sen luomisen jälkeen, voit käyttää seuraavaa komentoa.

rails d scaffold books

Jossa ”d” tarkoittaa ”destroy”.

Muista, että tämä poistaa telineen luomat tiedostot.

Nyt:

Ennen kuin voit käyttää scaffoldattua koodia, sinun on ajettava migraatiot päivittääksesi tietokantasi skeeman.

Käytä komentoa rails db:migrate.

Jos mitään virheilmoituksia ei tule, olet valmis! Sinulla on perusrakenne uudelle Rails-sovelluksellesi tai uudelle ominaisuudelle, joka tarvitsee uuden mallin, näkymät & vastaavan kontrollerin.

Seuraava:

Suorita rails server.

Avaa selaimesi localhost:3000/books & sinun pitäisi pystyä näkemään tulokset!

Rails Scaffolding With Extra Fields

Oletusarvoisesti…

Mallisi saa vain aikaleimakenttiä, mikä tarkoittaa, että ainoa tieto, jonka voit kirjata kirjoistasi (tai mistä tahansa mallista, jonka kanssa työskentelet), on aika, jolloin ne on luotu tai päivitetty.

Tässä kerrotaan, miten telineeseen lisätään ylimääräisiä kenttiä:

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

Jos luot telineesi näin, sinulla on kolme kenttää, joiden kanssa voit työskennellä.

Nimike, tekijä ja julkaisuvuosi.

Tämä on hieman mielenkiintoisempaa kuin se, että sinulla on vain tietokannan aikaleimat.

Btw.

Tämä on sama syntaksi, jota käytämme luodessamme migraatioita rails g migration:lla.

Spesifisten komponenttien generoiminen

Telineet luovat asioita, joita et ehkä tarvitse tai halua juuri nyt.

Mutta Rails on mukava.

Voit luoda yksittäisiä komponentteja, kuten ohjaimia, komennolla rails g (g for generate).

Esimerkkejä:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (luo mallin + migraation)
  • rails g migration CreateBook title:string year:integer (luo pelkän migraation)

Yksi suurista hyödyistä, joita scaffolding-komennon käyttäminen tuo tullessaan, on se, että kaikki tiedostot luodaan oikeilla nimeämiskonventioilla, jolloin vältytään oudoilta virhesanomilta. Se säästää myös työn, joka liittyy näiden tiedostojen manuaaliseen luomiseen.

Btw…

Hyvänä käytäntönä pidetään poistaa automaattisesti luodut tiedostot, joita et aio käyttää. Kun olet siis käyttänyt generaattoria, kuten ”g controller”, tarkista luotujen tiedostojen lista & poista ne tiedostot, joita et tarvitse.

Yhteenveto

Olet oppinut Rubyn rakennustelineistä, jotta voit nopeasti aloittaa uuden Rails-sovelluksen harjoittelun.

Kun opit lisää, saatat haluta päästää irti telineistä.

Mutta voit silti luoda yksittäisiä kontrollereita, malleja tai näkymätiedostoja, kun tarvitset niitä.

Kiitos lukemisesta! 🙂

Vastaa

Sähköpostiosoitettasi ei julkaista.