Ruby on Rails-opplæring
⚡ Smart oppsummering
Ruby on Rails-opplæringen introduserer det åpen kildekode-nettrammeverket skrevet i Ruby som driver Airbnb, GitHub og Shopify. Gjennomgangen dekker installasjon på Windows, Mac og Linux, Rails-generatorer, ruting, visninger, ActiveRecord, valideringer og feilsøking.

Hva er Ruby?
Rubin er et tolket, objektorientert programmeringsspråk på høyt nivå. Det er et dynamisk åpen kildekode-språk med et stort fellesskap bak seg. Ruby ble designet for enkelhet og produktivitet. Det oppmuntrer til å skrive programvarekode som er menneske først og datamaskin andre. Yukihiro Matsumoto opprettet Ruby i Japan i 1995.
Hva er Rails?
Rekkverk er et utviklingsrammeverk skrevet i Ruby for bygging av webapplikasjoner. Det ble opprettet som grunnlaget for Basecamp-applikasjonen og deretter utgitt som åpen kildekode-programvare i 2004. Rails tilbyr mange innebygde standardfunksjoner og funksjonaliteter, noe som gjør det til et passende valg for MVP-prototyper.ping og rask produktutvikling.
Rails ble laget av David Heinemeier Hansson, bedre kjent som DHH. Det er et av de mest innflytelsesrike og populære verktøyene for å bygge webapplikasjoner. Det brukes av store nettsteder som Airbnb, GitHub og Shopify.
Hvorfor skinner?
Før du installerer verktøykjeden, er det nyttig å forstå hvorfor Rails fortsatt er et populært valg for skipping webapplikasjoner raskt.
- Rails er pakket som en Ruby-perle, og du kan bruke den til å bygge et bredt utvalg av applikasjoner.
- Det lar deg bygge vanlige webapplikasjoner, e-handelsnettsteder, innholdsstyringssystemer og mer.
- Rails er et fullstack-rammeverk som inkluderer alt du trenger for å lage en databasedrevet webapplikasjon ved hjelp av Model-View-Controller (MVC)-mønsteret.
- Alle lag er designet for å fungere sømløst sammen, så Rails-prosjekter trenger vanligvis færre kodelinjer enn tilsvarende prosjekter i andre rammeverk.
Hvordan laste ned og installere Ruby på Windows
Installasjonsprosessen avhenger av operativsystemet ditt. De neste avsnittene dekker installasjon av Ruby på Windows, Mac og Linux.
Trinn 1) Last ned Rubyinstaller.
Den enkleste måten å installere Ruby på Windows datamaskinen er via Ruby Installer, tilgjengelig på https://rubyinstaller.org/.
Når du har lastet ned det, kjører du installasjonsprogrammet.
Trinn 2) Klikk på det nedlastede installasjonsprogrammet.
Double– klikk på den nedlastede installasjonsfilen, for eksempel rubyinstaller-2.4.1-2-x64.exe.
Trinn 3) Godta lisensen.
Velg alternativknappen «Jeg godtar lisensen» og klikk på «Neste»-knappen. Du skal se skjermbildet nedenfor.
Trinn 4) Kryss av i de to første avmerkingsboksene.
Merk av i de to første avmerkingsboksene for å gjøre det enklere å kjøre Ruby-skript.
Klikk på «Installer»-knappen for å starte installasjonen. Du skal se skjermbildet nedenfor når den er fullført.
Trinn 5) Klikk på Fullfør.
Ikke fjern merket for alternativet som installerer MSYS2. Klikk på «Fullfør» for å fullføre installasjonen. Et ledetekstvindu åpnes som vist nedenfor.
Trinn 6) Installer MSYS2.
Dette trinnet installerer MSYS2, en byggeplattform som har en pakkebehandler for enkel installasjon av pakker på Windows.
Trykk Enter for å installere alle komponentene, siden de alle er nødvendige for et problemfritt Ruby on Rails-utviklingsmiljø. Windows.
Montering av skinner
Du bør ha installert Ruby fra forrige avsnitt. Deretter installerer du Rails. Du kan installere Rails ved å bruke en pakke fra RailsInstaller, men pakken sender ofte ikke den nyeste versjonen av alle nødvendige avhengigheter.
Hvis du allerede har den nyeste Ruby og de grunnleggende RubyGems og utvidelsene installert, kjører du ganske enkelt følgende kommando ved ledeteksten for å installere Rails på systemet ditt: gem install rails.
Du må også installere node.js hvis du ikke allerede har det, fordi noen biblioteker som Rails er avhengige av krever en JavaSkriptkjøringstid skal fungere riktig. Hent Node på https://nodejs.org.
En mer vanlig og foretrukket tilnærming til Windows er å bruke Windows Delsystem for Linux. Det tilbyr et GNU/Linux-miljø med kommandolinjeverktøy, verktøy og vanlige applikasjoner direkte i Windows.
Installere Ruby på Mac
Mac-en din har allerede Ruby forhåndsinstallert. Den forhåndsinstallerte versjonen er imidlertid ofte utdatert, så du bør installere en nyere versjon.
Den enkleste måten å gjøre dette på er å bruke en pakkebehandler som f.eks. HomebrewDu må kanskje først installere Homebrew ved å kjøre kommandoen nedenfor i terminalen.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Dette viser en advarsel og ber deg om å skrive inn passordet ditt. Skriv inn Mac-passordet ditt (tegnene vises ikke mens du skriver) og trykk Enter når du er ferdig. Kjør deretter denne Homebrew-kommandoen for å installere Ruby på Mac-en din.
brew install ruby
Kjør deretter denne kommandoen:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
Dette setter den nye Ruby-installasjonen som standard Ruby på systemet ditt i stedet for den forhåndsinstallerte Ruby.
For å bekrefte at installasjonen var vellykket, kjør følgende i terminalen:
ruby --version
Dette skriver ut Ruby-versjonsnummeret du har installert. Resultatet ser omtrent slik ut:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Installerer Ruby på Ubuntu (Linux)
Den enkleste måten å installere Ruby på Ubuntu er gjennom apt-pakkebehandleren. Kjør følgende kommandoer i terminalen for å installere den nyeste Ruby-versjonen fra Ubuntu depoter.
- sudo apt oppdatering – Dette oppdaterer standardinnstillingen Ubuntu depoter.
- sudo apt install ruby-full – Dette laster ned og installerer den nyeste Ruby-versjonen.
For å bekrefte installasjonen, kjør ruby-versjonDette skriver ut Ruby-versjonen du har installert.
Montering av skinner på Ubuntu (Linux)
Følg trinnene nedenfor for å installere Rails på Linux-maskinen din.
Trinn 1) Oppdater edelstenbehandleren din ved å kjøre edelstenoppdatering – system i terminalen eller ledeteksten.
Trinn 2) Kjør perleinstallasjonsskinner for å installere den nyeste versjonen av Rails på datamaskinen.
Trinn 3) Installer bundler-gem-en for enkel administrasjon av gem-avhengigheter for Rails-applikasjoner. Kjør perleinstallasjonspakke.
To prinsipper for skinner
Rails følger grunnleggende prinsipper for programvaredesign og oppfordrer deg til å bruke dem også.
De to vanligste er:
- Ikke gjenta deg selv (TØRR) – dette fører til konsis, konsistent og vedlikeholdbar kode.
- Konvensjon over konfigurasjon – Rails er forhåndskonfigurert med fornuftige standardinnstillinger som passer til vanlig bruk. Dette gjør applikasjonsutvikling raskere og gir deg mindre kode å vedlikeholde.
Skinner – Prosjektfilstrukturer
Med Rails installert på systemet ditt, opprett en Rails-applikasjon. De neste avsnittene går gjennom et Ruby on Rails-eksempel ved å bygge en gjøremålsliste-applikasjon. Kjør følgende kommando i terminalen din for å opprette applikasjonen:
rails new todo_app
Denne kommandoen oppretter en katalog som heter gjøremålsapp i gjeldende katalog med den grunnleggende mappestrukturen til et Rails-webprogram, som vist nedenfor.
Her er hovedkatalogene som ble generert for prosjektet:
app – grupperer underkataloger for brukergrensesnittet/layoutet (visninger og hjelpere), kontrolleren (kontrollerfiler) og modellene (forretnings-/applikasjonslogikk).
app/kontrollere – lagrer kontrollerfiler som brukes av Rails til å håndtere forespørsler fra klienten.
app/aktiva – inneholder statiske filer som trengs av applikasjonens frontend, gruppert etter type: JavaScript filer, bilder og stilark.
app/hjelpere – inneholder hjelpefunksjoner som holder applikasjonsmodellen, visningen og kontrollerlogikken fokusert, liten og ryddig.
app/modeller – inneholder filer som modellerer applikasjonens database. Modellklassene gjør det veldig enkelt å jobbe med databasen.
app/visninger – inneholder mal-/layoutfilene som brukeren av applikasjonen din samhandler med. Malene kombinerer HTML med data fra databasen.
bin – inneholder Rails-skript som starter applikasjonen din. Den kan også inkludere andre skript du bruker til å sette opp og oppgradere applikasjonen.
config – inneholder konfigurasjonsfiler som f.eks. database.yml, miljø.rb, ruter.rbosv. som applikasjonen din trenger for å kjøre.
db – inneholder filer og skript som brukes til å administrere applikasjonsdatabasen din.
lib – inneholder utvidede moduler for applikasjonen din.
logg – inneholder loggfiler som f.eks. server.log, development.log, test.log og production.log, brukt til feilsøking eller overvåking av applikasjonen din.
offentlig – inneholder statiske filer og kompilerte ressurser, for eksempel HTML-filer, JavaSkriptfiler, bilder og stilark.
test – inneholder testfiler du skriver for å teste applikasjonens funksjonalitet.
tmp – inneholder midlertidige filer som cache- og pid-filer.
leverandør – inneholder tredjepartsbiblioteker.
Gemfile – spesifiserer de grunnleggende kravene til edelstener for å kjøre webapplikasjonen din. Du kan gruppere edelstenene i utvikling, test eller produksjon, og Rails vil vite når de skal inkludere hver edelsten.
Gemfile.lock – i motsetning til Gemfile, som eksplisitt lister opp edelstenene du ønsker i applikasjonen din, inneholder Gemfile.lock i tillegg andre edelstener som de som er oppført i Gemfile er avhengige av. Disse installeres automatisk for å oppfylle avhengighetene.
Readme.md – bruk denne filen til å dele viktige detaljer om applikasjonen din, for eksempel hva appen gjør og hvordan du installerer og kjører den.
Rakefile – inneholder diverse definisjoner av rake-oppgaver som bidrar til å automatisere daglige administrasjonsoppgaver i applikasjonen din.
config.ru – en rackkonfigurasjonsfil som gir et grensesnitt til webserveren for å starte applikasjonen din.
Endre katalogen til gjøremålsapp katalog Rails generert og kjørt skinneserver for å starte applikasjonen. Type localhost: 3000 i adressefeltet i nettleseren din. Du bør se skjermbildet nedenfor hvis alt gikk bra.
Dette er standard hjemmeside for applikasjonen din. Du vil endre den i en senere del av denne Ruby on Rails-opplæringen. Du kan stoppe serveren ved å trykke på Ctrl + C.
Rails – Generer kommandoer
Kommandoen Rails generate bruker maler for å lage mange nyttige ting i applikasjonen din. Disse generatorene sparer mye tid.
De skriver standardkode som er nødvendig for at webapplikasjonen din skal fungere. skinner genererer av seg selv ved ledeteksten eller terminalen for å se en liste over tilgjengelige generatorer, som vist nedenfor.
Du kan også kjøre skinner genererer for å se en beskrivelse av hva kommandoen gjør. Den viser praktiske alternativer og et brukseksempel. Figuren nedenfor viser resultatet av å kjøre skinner genererer kontroller.
Bruk kommandoen rails generate scaffold for å automatisk opprette modellen, visningen og kontrolleren for gjøremålslisteapplikasjonen du bygger. Kjør følgende i terminalen din (sørg for at du fortsatt er i gjøremålsapp katalog):
rails generate scaffold todo_list title:string description:text
Dette oppretter et komplett CRUD-nettgrensesnitt (Opprett, Les, Oppdater, Slett) for TodoLists-tabellen.
En annen nyttig kommando å vite er skinner ødeleggerDet reverserer hva som helst skinner genererer gjør.
Skinner – Ruting
Rails-rutesystemet, kalt Rails-ruteren, håndterer alle innkommende forespørsler til webapplikasjonen din. Det undersøker URL av hver forespørsel og tilordner den til kontrollerhandlingen som er ansvarlig for å håndtere den, ved å bruke syntaksen som er spesifisert i rutefilen (config/routes.rb).
Rutefilen kontrollerer hver URL aspekt av webapplikasjonen din. Rails bruker et RESTful-design basert på REST-arkitekturstilen, som gir et kartping mellom HTTP-verb og forespørsel URLs til kontrollerhandlinger.
Rutefilen ble generert da du løp nye skinner tidligere. Fortsett med Todo-applikasjonen du bygger, og kjør følgende:
rails db:migrate
Sørg for at du fortsatt er i roten av applikasjonen (den gjøremålsapp katalog).
Start serveren på nytt med skinneserver. Type http://localhost:3000/todo_lists/ i nettleseren din og trykk Enter. Du skal få tilbake en nettside som den nedenfor.
Dette er Todo-listevisningen som scaffold-kommandoen genererte, og den kontrolleres av TodoListsController-ens indeks handling.
Legg til en gjøremålsliste ved å klikke på «Ny gjøremålsliste» på siden. Du skal se skjermbildet nedenfor.
Legg merke til URL er nå http://localhost:3000/todo_lists/newDette er siden for å opprette en ny gjøremålsliste, og den kontrolleres av TodoListsController-ens nytt metoden.
Skriv inn tittelen og beskrivelsen av gjøremålslisten din i skjemaet, og klikk på «Opprett gjøremålsliste». URL bør endre til http://localhost:3000/todo_lists/1, som vist under.
Dette er visningssiden til en gjøremålsliste, kontrollert av TodoListsController-ens Vis metode. Hvis du går tilbake til http://localhost:3000/todo_lists/, skal du nå se skjermen nedenfor med den nye gjøremålslisten lagt til.
Rails kunne tilordne hver forespørsel til den tilsvarende TodoListsController-handlingen ved å bruke rutedefinisjonen i config/routes.rb.
Hvis du kikker på denne filen, vil du se en enkelt linje ressurser: gjøremålslister, som er Rails standardmåte å skrive RESTful-ruter på. Denne ene linjen oppretter sju ruter, alle kartlagtping til TodoLists-kontrolleren.
Som konvensjon er hver kontrollerhandling tilordnet en spesifikk CRUD-operasjon (opprett, les, oppdater, slett) i databasen.
Kjør skinneruter i kommandolinjen for å se de ulike rutene som er tilgjengelige i applikasjonen din. Figuren nedenfor viser resultatet av å kjøre skinneruter.
Skinner – Utsikter
Visningslaget er en av komponentene i MVC-paradigmet og er ansvarlig for å generere HTML-svaret for hver forespørsel til applikasjonen din. Rails bruker ERB (Embedded Ruby) som standard, som er et kraftig malsystem for Ruby.
ERB gjør maler enkle å skrive og vedlikeholde ved å kombinere ren tekst med Ruby-kode for variabelsubstitusjon og flytkontroll. En ERB-mal bruker .html.erb Utvidelse.
Du vil stort sett bruke to tagmarkører, som hver fører til at den innebygde koden behandles og håndteres på en bestemt måte.
En tagg med et likhetstegn <%= %> indikerer at den innebygde koden er et uttrykk, og resultatet av koden skal settes inn i utdataene når malen gjengis.
Den andre taggen uten likhetstegn <% %> indikerer til rendereren at resultatet av koden ikke skal erstattes eller skrives ut i utdataene.
Hver kontroller i Rails-applikasjonen din har en tilsvarende underkatalog i app/visninger, og hver handling i en kontroller har en tilsvarende .html.erb filen i den underkatalogen.
Se på app/visninger av Todo-appen du bygger. Du finner en underkatalog med navnet gjøremålslister inneholder .html.erb filer med navn som tilsvarer handlingene i Todolister kontrolleren.
Rails – ActiveRecord, Active Record Pattern og ORM
ActiveRecord er Ruby-implementeringen av Active Record-mønsteret. I dette mønsteret representerer en klasse en databasetabell, og en forekomst av klassen representerer en rad i den tabellen.
ActiveRecord blir ofte referert til som en ORM (Object Relational Map).ping)-laget, en teknikk som lar deg administrere databasen din ved hjelp av et språk du er mest komfortabel med. Det er databaseuavhengig, slik at du enkelt kan bytte mellom databaser – for eksempel, SQLite, MySQL, PostgreSQL, SQL Server, eller Oracle – bruker samme kode og logikk.
Hvis du for eksempel vil få en matrise som inneholder alle gjøremålslistene i applikasjonen din, trenger du ikke å skrive kode som åpner en tilkobling, kjører en SQL SELECT-spørring og konverterer resultatet.
Du bare skriver Gjøremålsliste.all, og ActiveRecord returnerer arrayet fylt med TodoList-objekter som du kan bruke som du vil.
Alt du trenger å gjøre er å sette opp konfigurasjonen i config/database.yml, og ActiveRecord håndterer forskjellene mellom databasesystemer. Når du bytter fra én database til en annen, trenger du ikke å skrive koden din på nytt.
Du fokuserer på applikasjonslogikk, og ActiveRecord tar seg av detaljene på lavt nivå for tilkobling til databasen din. Den bruker navnekonvensjoner for å tilordne modeller til databasetabeller.
Rails pluraliserer modellklassenavnene dine for å finne den tilsvarende databasetabellen. Så, for en klasse Gjøremålsliste, ActiveRecord bruker en databasetabell kalt gjøremålslister.
Skinner – Migrasjoner
En Rails-migrering er et skript du bruker for å utvikle applikasjonsdatabasen din. Det brukes til å sette opp eller endre databasen din uten å skrive SQL manuelt.
Den bruker Ruby til å definere endringer i databaseskjemaet og gjør det mulig å bruke versjonskontroll for å holde databasen synkronisert på tvers av miljøer.
Rails-migrasjoner bruker et Ruby Domain Specific Language (DSL). Dette fungerer som et abstracog gjør det mulig å bruke eller endre databasemotoren din basert på dine behov.
Migreringer kan deles med alle som jobber med applikasjonen, og kan også rulles tilbake for å angre endringer. Dette er en sterk sikkerhetsmekanisme, slik at du ikke trenger å bekymre deg for å gjøre permanent skade på databasen din.
Rails – ActiveRecord Associations
En forbindelse mellom to ActiveRecord-modeller er kjent som en assosiasjon. Assosiasjoner gjør det mye enklere å utføre operasjoner på relaterte poster i koden din. Det finnes fire vanlige kategorier.
En til en: En post inneholder nøyaktig én forekomst av en annen modell. Et godt eksempel er en brukerprofil – en bruker har bare én profil. Den bruker har_en søkeord.
En til mange: den vanligste assosiasjonen – én modell har null eller flere forekomster av en annen modell. Bruk har_mange nøkkelord for å betegne denne assosiasjonen.
Mange til mange: litt mer komplisert. ActiveRecord tilbyr to måter å håndtere det på: har_og_tilhører_mange og har_mange :gjennom, som gir deg tilgang til sammenføyningsmodellen som er definert i en egen tabell.
Polymorf én til mange: en mer avansert assosiasjon i Rails. Den definerer en modell som kan tilhøre mange forskjellige modeller på en enkelt assosiasjon.
Rails – ActiveRecord-valideringer
Validering bidrar til å sikre at du har korrekte data, fordi det er risikabelt og kan koste bedriften din penger å jobbe med dårlige data.
Validering gir også et ekstra lag med sikkerhet mot ondsinnede brukere som prøver å sette inn skadelige data i databasen din. Rails tilbyr et rent API med valideringshjelpemidler i ActiveRecord som holder databasen din ren, sikker og fri for feil.
ActiveRecord-valideringer kjøres på modellobjekter før de lagres i databasen, noe som gjør dem mer pålitelige og følger beste praksis.
Følgende ActiveRecord-metoder utløser valideringer når de kalles på modellobjekter: opprett, lag!, lagre, lagre!, oppdater og oppdater!Bang-versjonene (opprett!, lagre! og oppdater!) genererer et unntak hvis posten er ugyldig, mens ikke-bang-versjonene returnerer usann i stedet.
De vanligste ActiveRecord-valideringshjelperne er:
- Bekreftelse: validerer at to felt har samme verdi, for eksempel passord og passordbekreftelse. Den brukes sammen med hjelpeprogrammet for tilstedeværelsesvalidering.
- Tilstedeværelse: sjekker at feltet ikke er tomt.
- Unikt: sikrer en unik verdi for et felt, for eksempel brukernavn.
- Lengde: håndhever en grense for tegnlengden i et felt.
Du kan også opprette din egen tilpassede validering ved å bruke validere metoden og gi den navnet på en tilpasset valideringsmetode.
Sjekk modellens feil objekt for å finne ut hvorfor en validering mislyktes. Dette gir deg alt du trenger for å gjøre applikasjonen din mer begrenset og sikker, slik at kun gyldige data tillates i databasen.
Skinner – ActionController
Rails-kontrolleren er sentrum av nettapplikasjonen din. Det letter og koordinerer kommunikasjonen mellom brukeren, modellene og synspunktene.
Kontrollerklassene dine arver fra ApplicationController, som inneholder kode som kan kjøres i alle andre kontrollere, og som igjen arver fra Handlingskontroller::Base.
Kontrolleren gir følgende til applikasjonen din:
- Den ruter eksterne forespørsler til interne handlinger.
- Den administrerer mellomlagring, noe som gir ytelsesøkninger til applikasjonen din.
- Den administrerer hjelpemetoder som utvider visningsmalens muligheter og administrerer også brukerøkter, noe som gir brukerne en problemfri opplevelse.
Skinner – konfigurasjoner
Du kan konfigurere komponenter som initialiseringsprogrammer, ressurser, generatorer og mellomprogrammer ved å bruke Rails-applikasjonsinitialiseringsprogrammene og konfigurasjonsfilene i config katalog. Filer som config/applikasjon.rb, config/miljøer/utvikling.rbog config/miljøer/test.rb brukes her. Du kan også legge til egendefinerte innstillinger for applikasjonen din.
Rails – Feilsøking
Når du bygger applikasjonen din, må du feilsøke koden din. Rails gjør dette enkelt med byebug gem. Du kan starte en feilsøkingsøkt ved å plassere nøkkelordet byebug hvor som helst i applikasjonskoden din.
Dette stopper midlertidig kjøringen på det tidspunktet. Byebug-edelstenen tilbyr flere kommandoer. De mest nyttige er:
- neste: går til neste kodelinje, hopp overping alle metoder som kalles av den gjeldende linjen.
- steg: ligner neste, men går inn i hver påkalte metode.
- brudd: stopper kodekjøringen.
- Fortsette: fortsetter kodekjøringen.
Andre feilsøkingsperler er tilgjengelige, for eksempel lirkeDe tilbyr alle lignende funksjonalitet med litt ulik syntaks. Feilsøkingsgems bør ikke brukes i produksjon, da de utgjør en risiko for applikasjonen din og en dårlig opplevelse for brukerne dine.
Loggfiler kan inspiseres for feil i produksjonen og håndteres deretter. Du bør også følge en testdrevet utviklingsmetode (TDD) når du bygger applikasjonen din for å sikre at alt fungerer som det skal før du distribuerer den til produksjon.













