Ruby on Rails opetusohjelma
โก รlykรคs yhteenveto
Ruby on Rails -opetusohjelmassa esitellรครคn avoimen lรคhdekoodin verkkosovelluskehys, joka on kirjoitettu Rubylla ja jota kรคytetรครคn Airbnb:n, GitHubin ja Shopifyn pyรถrittรคmiseen. Opas kattaa asennuksenโฆ Windows, Mac ja Linux, Rails-generaattorit, reititys, nรคkymรคt, ActiveRecord, validoinnit ja virheenkorjaus.

Mikรค on Ruby?
Rubiini on korkean tason, tulkittu, olio-ohjelmointikieli. Se on dynaaminen avoimen lรคhdekoodin kieli, jonka takana on suuri yhteisรถ. Ruby suunniteltiin yksinkertaisuutta ja tuottavuutta silmรคllรค pitรคen. Se kannustaa kirjoittamaan ohjelmistokoodia, jossa ihminen on ensin ja tietokone toiseksi. Yukihiro Matsumoto loi Rubyn Japanissa vuonna 1995.
Mikรค on Rails?
Raiteet on Rubylla kirjoitettu kehityskehys web-sovellusten rakentamiseen. Se luotiin Basecamp-sovelluksen perustaksi ja julkaistiin sitten avoimen lรคhdekoodin ohjelmistona vuonna 2004. Rails tarjoaa monia sisรครคnrakennettuja vakio-ominaisuuksia ja -toimintoja, mikรค tekee siitรค sopivan vaihtoehdon MVP-prototyypille.ping ja nopeaa tuotekehitystรค.
Railsin loi David Heinemeier Hansson, joka tunnetaan paremmin nimellรค DHH. Se on yksi vaikutusvaltaisimmista ja suosituimmista tyรถkaluista web-sovellusten rakentamiseen. Sitรค kรคyttรคvรคt suuret sivustot, kuten Airbnb, GitHub ja Shopify.
Miksi Rails?
Ennen tyรถkaluketjun asentamista on hyรถdyllistรค ymmรคrtรครค, miksi kiskot ovat edelleen suosittu valinta laivojen rakentamiseen.ping verkkosovellukset nopeasti.
- Rails on pakattu Ruby-helmeksi, ja voit kรคyttรครค sitรค monenlaisten sovellusten rakentamiseen.
- Sen avulla voit rakentaa tavallisia verkkosovelluksia, verkkokauppasivustoja, sisรคllรถnhallintajรคrjestelmiรค ja paljon muuta.
- Rails on tรคyden pinon kehys, joka sisรคltรครค kaiken tarvittavan tietokantapohjaisen web-sovelluksen luomiseen Model-View-Controller (MVC) -mallia kรคyttรคen.
- Kaikki kerrokset on suunniteltu toimimaan saumattomasti yhdessรค, joten Rails-projektit tarvitsevat tyypillisesti vรคhemmรคn koodirivejรค kuin vastaavat projektit muissa kehyksissรค.
Kuinka ladata ja asentaa Ruby Windows
Asennusprosessi riippuu kรคyttรถjรคrjestelmรคstรคsi. Seuraavissa osioissa kรคsitellรครคn Rubyn asentamista... Windows, Mac ja Linux.
Vaihe 1) Lataa Rubyinstaller.
Helpoin tapa asentaa Ruby tietokoneellesi Windows tietokone on Ruby Installerin kautta, joka on saatavilla osoitteessa https://rubyinstaller.org/.
Kun olet ladannut tiedoston, suorita asennusohjelma.
Vaihe 2) Napsauta ladattua asennusohjelmaa.
Double-napsauta ladattua asennustiedostoa, esimerkiksi rubyinstaller-2.4.1-2-x64.exe.
Vaihe 3) Hyvรคksy lisenssi.
Valitse โHyvรคksyn lisenssin ehdotโ -valintanappi ja napsauta โSeuraavaโ-painiketta. Sinun pitรคisi nรคhdรค alla oleva nรคyttรถ.
Vaihe 4) Valitse kaksi ensimmรคistรค valintaruutua.
Valitse kaksi ensimmรคistรค valintaruutua Ruby-komentosarjojen suorittamisen helpottamiseksi.
Aloita asennus napsauttamalla โAsennaโ-painiketta. Sinun pitรคisi nรคhdรค alla oleva nรคyttรถ, kun se on valmis.
Vaihe 5) Napsauta Valmis.
รlรค poista valintaa vaihtoehdosta, joka asentaa MSYS2:n. Viimeistele asennus napsauttamalla "Valmis". Nรคyttรถรถn avautuu alla olevan kuvan mukainen komentokehoteikkuna.
Vaihe 6) Asenna MSYS2.
Tรคssรค vaiheessa asennetaan MSYS2, kรครคnnรถsalusta, jossa on pakettien hallintaohjelma pakettien helppoa asentamista varten. Windows.
Paina Enter-nรคppรคintรค asentaaksesi kaikki komponentit, koska niitรค kaikkia tarvitaan sujuvaan Ruby on Rails -kehitysympรคristรถรถn Windows.
Kiskojen asennus
Sinulla pitรคisi olla Ruby asennettuna edellisestรค osiosta. Asenna seuraavaksi Rails. Voit asentaa Railsin kรคyttรคmรคllรค pakettia osoitteesta Rails Installer, mutta paketti ei usein toimita kaikkien vaadittujen riippuvuuksien uusinta versiota.
Jos sinulla on jo uusin Ruby ja RubyGemsin perusversio ja laajennukset asennettuna, suorita seuraava komento komentokehotteessa asentaaksesi Railsin jรคrjestelmรครคsi: gem install rails.
Sinun on myรถs asennettava Node.js jos sinulla ei sitรค vielรค ole, koska jotkin Railsin tarvitsemat kirjastot vaativat sen JavaSkriptin suoritusaikainen toiminta toimii oikein. Hanki solmu osoitteesta https://nodejs.org.
Yleisempi ja suositumpi lรคhestymistapa Windows on kรคyttรครค Windows Linux-alijรคrjestelmรค. Se tarjoaa GNU/Linux-ympรคristรถn, jossa on komentorivityรถkalut, apuohjelmat ja yleiset sovellukset suoraan sisรคllรค. Windows.
Rubyn asentaminen Maciin
Macissasi on jo Ruby esiasennettuna. Esiasennettu versio on kuitenkin usein vanhentunut, joten sinun kannattaa asentaa uudempi versio.
Helpoin tapa tehdรค tรคmรค on kรคyttรครค paketinhallintaa, kuten HomebrewSinun on ehkรค ensin asennettava Homebrew suorittamalla alla oleva komento Pรครคte-ikkunassa.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Tรคmรค nรคyttรครค varoituksen ja kehottaa sinua antamaan salasanasi. Anna Mac-salasanasi (merkit eivรคt nรคy kirjoittaessasi) ja paina Enter-nรคppรคintรค, kun olet valmis. Suorita sitten tรคmรค Homebrew-komento asentaaksesi Rubyn Macillesi.
brew install ruby
Suorita sitten tรคmรค komento:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
Tรคmรค asettaa uuden Ruby-asennuksen jรคrjestelmรคn oletusarvoiseksi Rubyksi esiasennetun Rubyn sijaan.
Vahvista asennuksen onnistuminen suorittamalla seuraava komento Pรครคte-ohjelmassa:
ruby --version
Tรคmรค tulostaa asennetun Rubyn versionumeron. Tuloste nรคyttรครค suunnilleen tรคltรค:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Rubyn asennus Ubuntu (Linux)
Helpoin tapa asentaa Ruby Ubuntu tapahtuu apt-paketinhallinnan kautta. Suorita seuraavat komennot pรครคtteessรค asentaaksesi uusimman Rubyn Ubuntu arkistot.
- sudo apt pรคivitys โ Tรคmรค pรคivittรครค oletusarvon Ubuntu arkistot.
- sudo apt install ruby-full โ Tรคmรค lataa ja asentaa uusimman Rubyn.
Vahvista asennus suorittamalla rubiini-versioTรคmรค tulostaa asennetun Ruby-version.
Kiskojen asennus Ubuntu (Linux)
Asenna Rails Linux-koneellesi noudattamalla alla olevia ohjeita.
Vaihe 1) Pรคivitรค jalokivihallintasi suorittamalla jalokivipรคivitys โjรคrjestelmรค Pรครคte- tai komentokehotteessa.
Vaihe 2) ajaa Gem-asennuskiskot asentaaksesi Railsin uusimman version tietokoneellesi.
Vaihe 3) Asenna bundler gem helppoa Rails-sovelluksen gem-riippuvuuksien hallintaa varten. Suorita gem asennuspaketti.
Kaksi kiskojen periaatetta
Rails noudattaa ohjelmistosuunnittelun perusperiaatteita ja kannustaa sinuakin kรคyttรคmรครคn niitรค.
Kaksi yleisintรค ovat:
- รlรค toista itseรคsi (kuiva) โ tรคmรค johtaa ytimekkรครคseen, johdonmukaiseen ja yllรคpidettรคvรครคn koodiin.
- Kokoonpanosopimus โ Rails on esikonfiguroitu jรคrkevillรค oletusarvoilla, jotka sopivat yleisimpiin kรคyttรถtarkoituksiin. Tรคmรค nopeuttaa sovelluskehitystรค ja vรคhentรครค yllรคpidettรคvรคn koodin mรครคrรครค.
Rails โ projektitiedostorakenteet
Kun Rails on asennettu jรคrjestelmรครคsi, luo Rails-sovellus. Seuraavissa osioissa kรคydรครคn lรคpi Ruby on Rails -esimerkki rakentamalla tehtรคvรคlistasovellus. Suorita seuraava komento Pรครคte-ohjelmassa luodaksesi sovelluksen:
rails new todo_app
Tรคmรค komento luo hakemiston nimeltรค todo_app nykyisessรค hakemistossa Rails-verkkosovelluksen peruskansiorakenteella, kuten alla on esitetty.
Tรคssรค ovat projektille luodut pรครคhakemistot:
sovelluksen โ ryhmittelee alihakemistot kรคyttรถliittymรคlle/asetteluun (nรคkymรคt ja apuohjelmat), ohjaimelle (ohjaintiedostot) ja malleille (liiketoiminta-/sovelluslogiikka).
sovellus/ohjaimet โ tallentaa Railsin kรคyttรคmiรค ohjaintiedostoja asiakkaan pyyntรถjen kรคsittelyyn.
sovellus/resurssit โ sisรคltรครค sovelluksen kรคyttรถliittymรคn tarvitsemat staattiset tiedostot tyypin mukaan ryhmiteltyinรค: JavaKรคsikirjoitus tiedostot, kuvat ja tyylisivut.
sovellus/apuohjelmat โ sisรคltรครค apufunktioita, jotka pitรคvรคt sovellusmallisi, nรคkymรคsi ja ohjainlogiikan keskittyneenรค, pienenรค ja selkeรคnรค.
sovellus/mallit โ sisรคltรครค tiedostoja, jotka mallintavat sovelluksesi tietokantaa. Malliluokat tekevรคt tietokannan kanssa tyรถskentelystรค erittรคin helppoa.
sovellus/nรคkymรคt โ sisรคltรครค malli-/asettelutiedostot, joiden kanssa sovelluksesi kรคyttรคjรค on vuorovaikutuksessa. Mallit yhdistรคvรคt HTML:รครค tietokannan tietoihin.
astia โ sisรคltรครค Rails-skriptejรค, jotka kรคynnistรคvรคt sovelluksesi. Se voi sisรคltรครค myรถs muita skriptejรค, joita kรคytรคt sovelluksen asentamiseen ja pรคivittรคmiseen.
config โ sisรคltรครค asetustiedostoja, kuten tietokanta.yml, ympรคristรถ.rb, reitit.rbjne., joita sovelluksesi tarvitsee toimiakseen.
db โ sisรคltรครค tiedostoja ja komentosarjoja, joita kรคytetรครคn sovellustietokannan hallintaan.
lib โ sisรคltรครค laajennettuja moduuleja sovelluksellesi.
log โ sisรคltรครค lokitiedostoja, kuten server.log, development.log, test.log ja production.log, kรคytetรครคn sovelluksen virheenkorjaukseen tai valvontaan.
julkinen โ sisรคltรครค staattisia tiedostoja ja kรครคnnettyjรค resursseja, kuten HTML-tiedostoja, JavaSkriptitiedostot, kuvat ja tyylitiedostot.
testi โ sisรคltรครค testitiedostoja, joita kirjoitat sovelluksesi toiminnallisuuden testaamiseksi.
tmp โ sisรคltรครค vรคliaikaisia โโtiedostoja, kuten vรคlimuistin ja pid-tiedostot.
myyjรค โ sisรคltรครค kolmannen osapuolen kirjastoja.
Gemfile โ mรครคrittรครค web-sovelluksesi suorittamiseen tarvittavat perusvaatimukset gem-elementeille. Voit ryhmitellรค gem-elementit kehitys-, testi- tai tuotantoympรคristรถihin, ja Rails tietรครค, milloin kukin elementti on sisรคllytettรคvรค.
Gemfile.lock โ toisin kuin Gemfile, joka listaa erikseen sovellukseesi haluamasi jalokivet, Gemfile.lock sisรคltรครค lisรคksi muita jalokiviรค, joista Gemfile-tiedostossa luetellut jalokivet ovat riippuvaisia. Nรคmรค asennetaan automaattisesti riippuvuuksien tรคyttรคmiseksi.
Readme.md โ kรคytรค tรคtรค tiedostoa jakaaksesi olennaisia โโtietoja sovelluksestasi, kuten mitรค sovellus tekee ja miten se asennetaan ja suoritetaan.
Rakefile โ sisรคltรครค erilaisia โโrake-tehtรคvรคmรครคritelmiรค, jotka auttavat automatisoimaan sovelluksesi pรคivittรคisiรค hallintatehtรคviรค.
config.ru โ rรคkin mรครคritystiedosto, joka tarjoaa rajapinnan web-palvelimelle sovelluksesi kรคynnistรคmiseksi.
Vaihda hakemistoon todo_app hakemistokiskot luodaan ja suoritetaan kiskopalvelin kรคynnistรครคksesi sovelluksen. Tyyppi localhost: 3000 verkkoselaimesi osoiterivillรค. Jos kaikki meni hyvin, sinun pitรคisi nรคhdรค alla oleva nรคyttรถ.
Tรคmรค on sovelluksesi oletusarvoinen kotisivu. Voit muuttaa sitรค tรคmรคn Ruby on Rails -opetusohjelman myรถhemmรคssรค osiossa. Voit pysรคyttรครค palvelimen painamalla Ctrl + C.
Kiskot โ Luo komentoja
Rails-generointikomento kรคyttรครค malleja luodakseen monia hyรถdyllisiรค asioita sovellukseesi. Nรคmรค generaattorit sรครคstรคvรคt paljon aikaa.
He kirjoittavat mallikoodia, joka on vรคlttรคmรคtรถn verkkosovelluksesi toiminnalle. kiskot tuottavat yksinรครคn komentokehotteessa tai Pรครคtteessรค nรคhdรคksesi luettelon kรคytettรคvissรค olevista generaattoreista, kuten alla on esitetty.
Voit myรถs ajaa kiskot tuottavat nรคhdรคksesi kuvauksen komennon toiminnasta. Se listaa kรคteviรค vaihtoehtoja ja kรคyttรถesimerkin. Alla oleva kuva nรคyttรครค komennon running tulosteen. kiskot generoivat ohjaimen.
Kรคytรค rails generate scaffold -komentoa luodaksesi automaattisesti mallin, nรคkymรคn ja ohjaimen rakentamallesi Todo list -sovellukselle. Suorita seuraava komento pรครคtteessรค (varmista, ettรค olet edelleen todo_app hakemisto):
rails generate scaffold todo_list title:string description:text
Tรคmรค luo tรคydellisen CRUD (Create, Read, Update, Delete) -verkkokรคyttรถliittymรคn TodoLists-taulukolle.
Toinen hyรถdyllinen komennon tietรครค on kiskot tuhoavatSe kรครคntรครค kaiken pรคinvastaiseksi kiskot tuottavat ei.
Kiskot โ reititys
Rails-reititysjรคrjestelmรค, jota kutsutaan Rails-reitittimeksi, kรคsittelee kaikki verkkosovellukseesi saapuvat pyynnรถt. Se tutkii URL jokaisesta pyynnรถstรค ja yhdistรครค sen sen kรคsittelystรค vastaavaan ohjaimen toimintoon kรคyttรคmรคllรค reittitiedostossa mรครคritettyรค syntaksia (config/routes.rb).
Reittitiedosto ohjaa kaikkia URL web-sovelluksesi osa. Rails kรคyttรครค RESTful-suunnittelua, joka perustuu REST-arkkitehtuurityyliin ja tarjoaa kartanping HTTP-verbien ja pyynnรถn vรคlillรค URLs ohjaimen toimiin.
Reittitiedosto luotiin, kun juoksit kiskot uudet aiemmin. Jatka rakentamaasi Todo-sovellusta suorittamalla seuraavat toimenpiteet:
rails db:migrate
Varmista, ettรค olet edelleen sovelluksen juuressa (esim. todo_app hakemisto).
Kรคynnistรค palvelin uudelleen komennolla kiskopalvelin. Tyyppi http://localhost:3000/todo_lists/ selaimessasi ja paina Enter-nรคppรคintรค. Sinun pitรคisi saada takaisin alla olevan kaltainen verkkosivu.
Tรคmรค on tehtรคvรคluettelonรคkymรค, jonka scaffold-komento loi, ja sitรค ohjaa TodoListsControllerin indeksi toimintaa.
Lisรครค tehtรคvรคlista napsauttamalla sivulla olevaa โUusi tehtรคvรคlistaโ. Sinun pitรคisi nรคhdรค alla oleva nรคyttรถ.
Ilmoitus URL on nyt http://localhost:3000/todo_lists/newTรคmรค on sivu uuden tehtรคvรคlistan luomiseksi, ja sitรค ohjaa TodoListsControllerin uusi menetelmรคllรค.
Syรถtรค tehtรคvรคlistan otsikko ja kuvaus lomakkeeseen ja napsauta "Luo tehtรคvรคlista". URL pitรคisi muuttaa http://localhost:3000/todo_lists/1, kuten alla.
Tรคmรค on TodoListsControllerin ohjaaman tehtรคvรคlistan nรคyttรถsivu. nรคyttรครค menetelmรค. Jos palaat takaisin http://localhost:3000/todo_lists/, sinun pitรคisi nyt nรคhdรค alla oleva nรคyttรถ, johon on lisรคtty uusi tehtรคvรคlista.
Rails pystyi yhdistรคmรครคn jokaisen pyynnรถn vastaavaan TodoListsController-toimintoon kรคyttรคmรคllรค reittimรครคritelmรครค kohdassa config/routes.rb.
Jos katsot tรคtรค tiedostoa, nรคet yhden rivin resurssit: tehtรคvรคlistat, joka on Railsin oletusarvoinen tapa kirjoittaa RESTful-reittejรค. Tรคmรค yksi rivi luo seitsemรคn reittiรค, jotka kaikki ovat map-reittejรค.ping TodoLists-ohjaimeen.
Kรคytรคnnรถn mukaisesti jokainen ohjaimen toiminto liittyy tiettyyn CRUD-operaatioon (Create, Read, Update, Delete) tietokannassa.
ajaa kiskot reitit komentorivillรค nรคhdรคksesi sovelluksessasi kรคytettรคvissรค olevat eri reitit. Alla oleva kuva nรคyttรครค komennon kiskot reitit.
Kiskot โ Nรคkymรคt
Nรคkymรคkerros on yksi MVC-paradigman komponenteista ja se vastaa HTML-vastauksen luomisesta jokaiselle sovelluksellesi lรคhetetylle pyynnรถlle. Rails kรคyttรครค oletuksena ERB:tรค (Embedded Ruby), joka on tehokas Rubyn mallinnusjรคrjestelmรค.
ERB helpottaa mallipohjien kirjoittamista ja yllรคpitoa yhdistรคmรคllรค pelkkรครค tekstiรค Ruby-koodiin muuttujien korvaamista ja virtauksen hallintaa varten. ERB-mallipohja kรคyttรครค .html.erb laajennus.
Kรคytรคt enimmรคkseen kahta tagimerkkiรค, joista kumpikin aiheuttaa upotetun koodin kรคsittelyn ja kรคsittelyn tietyllรค tavalla.
Yhtรคsuuruusmerkillรค varustettu tunniste <%= %> osoittaa, ettรค upotettu koodi on lauseke ja koodin tulos tulisi sijoittaa tulosteeseen, kun malline renderรถidรครคn.
Toinen tunniste ilman yhtรคlรคisyysmerkkiรค <% %> ilmaisee renderรถijรคlle, ettรค koodin tulosta ei tule korvata tai tulostaa tulosteessa.
Jokaisella Rails-sovelluksesi ohjaimella on vastaava alihakemisto sovellus/nรคkymรคt, ja jokaisella ohjaimen toiminnolla on vastaava .html.erb tiedosto kyseisessรค alihakemistossa.
Katsomaan sovellus/nรคkymรคt rakentamastasi Todo-sovelluksesta. Lรถydรคt alihakemiston nimeltรค tehtรคvรคlistat sisรคltรคvรค .html.erb tiedostoja, joiden nimet vastaavat kohdassa olevia toimintoja TodoLists ohjain.
Kiskot โ ActiveRecord, Active Record Pattern ja ORM
ActiveRecord on Active Record -mallin Ruby-toteutus. Tรคssรค mallissa luokka edustaa tietokantataulukkoa ja luokan instanssi edustaa riviรค kyseisessรค taulukossa.
ActiveRecordia kutsutaan yleisesti ORM:ksi (Object Relational Mapping) kerros, tekniikka, jonka avulla voit hallita tietokantaa sinulle parhaiten sopivalla kielellรค. Se on tietokannasta riippumaton, joten voit helposti vaihtaa tietokantojen vรคlillรค โ esimerkiksi SQLite, MySQL, PostgreSQL, SQL Server tai Oracle โ kรคyttรคen samaa koodia ja logiikkaa.
Esimerkiksi saadaksesi taulukon, joka sisรคltรครค kaikki sovelluksesi tehtรคvรคlistat, sinun ei tarvitse kirjoittaa koodia, joka avaa yhteyden, suorittaa SQL SELECT -kyselyn ja muuntaa tuloksen.
Kirjoitat vain TodoList.all, ja ActiveRecord palauttaa taulukon, joka on tรคytetty TodoList-objekteilla, joita voit kรคyttรครค haluamallasi tavalla.
Sinun tarvitsee vain mรครคrittรครค asetukset kohdassa config/database.yml, ja ActiveRecord kรคsittelee tietokantajรคrjestelmien vรคliset erot. Kun vaihdat tietokannasta toiseen, sinun ei tarvitse kirjoittaa koodiasi uudelleen.
Sinรค keskityt sovelluslogiikkaan, ja ActiveRecord hoitaa tietokantaasi yhdistรคmisen matalan tason yksityiskohdat. Se kรคyttรครค nimeรคmiskรคytรคntรถjรค mallien yhdistรคmiseen tietokantataulukoihin.
Rails monistaa malliluokkasi nimet lรถytรครคkseen vastaavan tietokantataulukon. Joten luokalle TehtรคvรคlistaActiveRecord kรคyttรครค tietokantataulukkoa nimeltรค tehtรคvรคlistat.
Kiskot โ muuttoliikkeet
Rails-migraatio on komentosarja, jota kรคytetรครคn sovellustietokannan kehittรคmiseen. Sitรค kรคytetรครคn tietokannan mรครคrittรคmiseen tai muuttamiseen ilman SQL-koodin manuaalista kirjoittamista.
Se kรคyttรครค Rubya tietokantarakenteen muutosten mรครคrittelemiseen ja mahdollistaa versionhallinnan kรคytรถn tietokannan synkronoimiseksi eri ympรคristรถissรค.
Rails-migraatiot kรคyttรคvรคt Ruby Domain Specific Language (DSL) -kieltรค. Tรคmรค toimii abs-tiedostona.tracja mahdollistaa tietokantamoottorin kรคytรถn tai muuttamisen tarpeidesi mukaan.
Migraatiot voidaan jakaa kenen tahansa sovelluksen parissa tyรถskentelevรคn kanssa, ja ne voidaan myรถs peruuttaa muutosten kumoamiseksi. Tรคmรค on vahva turvamekanismi, joten sinun ei tarvitse huolehtia tietokannan pysyvistรค vaurioista.
Rails โ ActiveRecord-yhdistykset
Kahden ActiveRecord-mallin vรคlistรค yhteyttรค kutsutaan assosiaatioksi. Assosiaatiot helpottavat huomattavasti toimintojen suorittamista toisiinsa liittyville tietueille koodissasi. Yleisiรค tyyppejรค on neljรค.
Yksi yhteen: tietue sisรคltรครค tรคsmรคlleen yhden esiintymรคn toisesta mallista. Hyvรค esimerkki on kรคyttรคjรคprofiili โ kรคyttรคjรคllรค on vain yksi profiili. Se kรคyttรครค on_yksi avainsana.
Yksi moniin: yleisin assosiaatio โ yhdellรค mallilla on nolla tai useampia esiintymiรค toisesta mallista. Kรคytรค on_monta avainsana kuvaamaan tรคtรค yhteyttรค.
Monista moneen: hieman monimutkaisempi. ActiveRecord tarjoaa kaksi tapaa kรคsitellรค sitรค: on_ja_kuuluu_monille ja has_many :lรคpi, joka antaa sinulle pรครคsyn erillisessรค taulukossa mรครคriteltyyn liitosmalliin.
Polymorfinen yksi moneen: edistyneempi assosiaatio Railsissa. Se mรครคrittelee mallin, joka voi kuulua useisiin eri malleihin yhden assosiaation kautta.
Rails โ ActiveRecord-vahvistukset
Validointi auttaa varmistamaan, ettรค sinulla on oikeat tiedot, koska huonojen tietojen kanssa tyรถskentely on riskialtista ja voi maksaa yrityksellesi rahaa.
Validointi tarjoaa myรถs ylimรครคrรคisen suojauskerroksen pahantahtoisia kรคyttรคjiรค vastaan, jotka yrittรคvรคt lisรคtรค haitallisia tietoja tietokantaasi. Rails tarjoaa puhtaan API:n validointiavustajia ActiveRecordissa, jotka pitรคvรคt tietokantasi puhtaana, suojattuna ja virheettรถmรคnรค.
ActiveRecord-validoinnit suoritetaan malliobjekteille ennen tietokantaan tallentamista, mikรค tekee niistรค luotettavampia ja noudattaa parhaita kรคytรคntรถjรค.
Seuraavat ActiveRecord-metodit kรคynnistรคvรคt validointeja, kun niitรค kutsutaan malliobjekteille: luo, luo!, tallenna, tallenna!, pรคivitรค ja pรคivitรค!Bang-versiot (luo!, tallenna! ja pรคivitรค!) aiheuttavat poikkeuksen, jos tietue on virheellinen, kun taas ei-bang-versiot palauttavat sen sijaan arvon false.
Yleisimmรคt ActiveRecord-validointiapuohjelmat ovat:
- Vahvistus: Tarkistaa, ettรค kahdella kentรคllรค on sama arvo, esimerkiksi salasana ja salasanan vahvistus. Sitรค kรคytetรครคn yhdessรค lรคsnรคolon tarkistusaputoiminnon kanssa.
- Lรคsnรคolo: tarkistaa, ettei kenttรค ole tyhjรค.
- Ainutlaatuisuus: varmistaa, ettรค kentรคllรค, esimerkiksi kรคyttรคjรคtunnuksella, on yksilรถllinen arvo.
- Pituus: asettaa kentรคn merkkipituudelle rajoituksen.
Voit myรถs luoda oman mukautetun validointisi kรคyttรคmรคllรค vahvistaa menetelmรค ja vรคlittรคmรคllรค sille mukautetun validointimenetelmรคn nimen.
Tarkista mallin virheet objekti selvittรครคksesi, miksi validointi epรคonnistui. Tรคmรค antaa sinulle kaiken tarvittavan sovelluksesi rajoittamiseen ja suojaamiseen, sallien vain kelvollisen datan pรครคsyn tietokantaan.
Rails โ ActionController
Rails-ohjain on verkkosovelluksesi keskus. Se helpottaa ja koordinoi viestintรครค kรคyttรคjรคn, mallien ja nรคkemysten vรคlillรค.
Ohjainluokkasi perivรคt ApplicationController, joka sisรคltรครค koodia, jota voidaan suorittaa kaikissa muissa ohjaimissa ja joka puolestaan โโperiytyy Toiminto-ohjain::Pohja.
Ohjain tarjoaa sovelluksellesi seuraavat tiedot:
- Se reitittรครค ulkoiset pyynnรถt sisรคisiin toimintoihin.
- Se hallitsee vรคlimuistia, mikรค parantaa sovelluksesi suorituskykyรค.
- Se hallitsee apumetodeja, jotka laajentavat nรคkymรคmallien ominaisuuksia, ja hallitsee myรถs kรคyttรคjรคistuntoja, mikรค tarjoaa kรคyttรคjille sujuvan kรคyttรถkokemuksen.
Kiskot โ Kokoonpanot
Voit mรครคrittรครค komponentteja, kuten alustajia, resursseja, generaattoreita ja vรคliohjelmia, kรคyttรคmรคllรค Rails-sovelluksesi alustajia ja mรครคritystiedostoja kohdassa config hakemisto. Tiedostot, kuten config/sovellus.rb, config/ympรคristรถt/kehitys.rbja config/ympรคristรถt/test.rb kรคytetรครคn tรคssรค. Voit myรถs lisรคtรค mukautettuja asetuksia sovelluksellesi.
Rails โ Virheenkorjaus
Kun rakennat sovellustasi, sinun on debugattava koodiasi. Rails tekee tรคstรค helppoa byebug gem. Voit aloittaa virheenkorjausistunnon sijoittamalla avainsanan byebug missรค tahansa sovelluskoodissasi.
Tรคmรค pysรคyttรครค suorituksen tilapรคisesti siinรค vaiheessa. byebug-gem tarjoaa useita komentoja. Hyรถdyllisimmรคt niistรค ovat:
- Seuraava: siirtyy seuraavalle koodiriville, ohitaping kaikki nykyisen rivin kutsumat metodit.
- vaihe: muistuttavat seuraava, mutta astuu esiin jokaisessa kutsutussa metodissa.
- tauko: pysรคyttรครค koodin suorituksen.
- jatkaa: jatkaa koodin suorittamista.
Muita virheenkorjaushelmiรค on saatavilla, kuten urkkiaNe kaikki tarjoavat samanlaisia โโtoimintoja, mutta niiden syntaksi on hieman erilainen. Debugging gemejรค ei tule kรคyttรครค tuotannossa, koska ne aiheuttavat riskejรค sovelluksellesi ja huonon kรคyttรถkokemuksen kรคyttรคjillesi.
Lokitiedostoja voidaan tarkastaa virheiden varalta tuotannossa ja kรคsitellรค niiden mukaisesti. Sovellusta rakennettaessa tulisi myรถs noudattaa testilรคhtรถistรค kehitystรค (TDD) varmistaakseen, ettรค kaikki toimii hyvin ennen kรคyttรถรถnottoa tuotantoympรคristรถssรค.













