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
Book
malli - Uusi
resources :books
reitti lisätäänconfig/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! 🙂