Ruby on Rails handledning
Vad รคr Ruby?
Rubin รคr ett tolkat och objektorienterat programmeringssprรฅk pรฅ hรถg nivรฅ. Det รคr ett dynamiskt sprรฅk med รถppen kรคllkod som har en stor gemenskap bakom sig. Ruby designades fรถr enkelhet och produktivitet. Det uppmuntrar att skriva mรคnsklig fรถrsta och dator andra programvarukod. Den skapades av Yukihiro Matsumoto i Japan 1995.
Vad รคr Rails?
Skenor รคr ett utvecklingsramverk skrivet i Ruby fรถr att bygga webbapplikationer. Den skapades som grunden fรถr Basecamp-applikationen och slรคpptes sedan som en รถppen kรคllkodsmjukvara 2004. Rails erbjuder mรฅnga inbyggda standardfunktioner och funktioner, vilket gรถr det till ett lรคmpligt alternativ fรถr MVP-prototyper och utveckling.
Den skapades av David Heinemeier Hasson, populรคrt kรคnd som DHH. Det รคr ett av de mest inflytelserika och populรคra verktygen fรถr att bygga webbapplikationer. Det anvรคnds av nรฅgra av favoritsajterna som Airbnb, Github, Shopify, etc.
Varfรถr Rails?
Hรคr รคr fรถrdelarna/fรถrdelarna med att anvรคnda Rails:
- Rails รคr fรถrpackad som en Ruby pรคrla, och du kan anvรคnda den fรถr att bygga en mรคngd olika applikationer.
- Det lรฅter dig bygga vanliga webbapplikationer, e-handelsapplikationer, innehรฅllshanteringssystem och mer.
- Rails รคr ett ramverk i full stack som innehรฅller allt du behรถver fรถr att skapa en databasdriven webbapplikation, med modellen Model-View-Controller.
- Detta innebรคr att alla lager รคr byggda fรถr att fungera sรถmlรถst tillsammans med mindre kod. Det krรคver fรคrre rader kod รคn andra ramverk.
Hur man laddar ner och installerar Ruby pรฅ Windows
Installationsprocessen beror pรฅ ditt operativsystem. Du kommer att gรฅ igenom installationen av Ruby pรฅ Windows, Mac och Linux.
Steg 1) Ladda ner Rubyinstaller
Det enklaste sรคttet att installera Ruby pรฅ din Windows datorn รคr genom Ruby Installer som du kan ladda ner pรฅ https://rubyinstaller.org/.
Allt du behรถver gรถra รคr att kรถra det nedladdade installationsprogrammet.
Steg 2) Klicka pรฅ nedladdat installationsprogram
Double-klicka pรฅ det nedladdade installationsprogrammet 'rubyinstaller-2.4.1-2-x64.exe'.
Steg 3) Acceptera licensen
Vรคlj alternativknappen "Jag accepterar licensen" och klicka pรฅ knappen "Nรคsta". Detta bรถr ta dig till nรคsta bild nedan:
Steg 4) Markera de tvรฅ fรถrsta kryssrutorna
Markera de tvรฅ fรถrsta kryssrutorna fรถr att gรถra det enklare att kรถra Ruby-skript.
Klicka pรฅ knappen "Installera" fรถr att komma igรฅng med installationen. Du bรถr se bilden nedan nรคr installationen รคr klar.
Steg 5) Klicka pรฅ Slutfรถr
Avmarkera inte kryssrutan som installerar MSYS2. Klicka pรฅ "Slutfรถr" fรถr att slutfรถra installationen och ett kommandopromptfรถnster som visas i bilden nedan kommer att visas.
Steg 6) Installerar MSYS2
Detta steg installerar MSYS2, en byggplattform som har en pakethanterare fรถr enkel installation av paket pรฅ Windows.
Tryck pรฅ Enter fรถr att installera alla komponenter eftersom de alla krรคvs fรถr att ha en smidig Ruby on Rails-utvecklingsmiljรถ att arbeta med pรฅ Windows.
Installation av skenor
Du bรถr ha Ruby installerad frรฅn fรถregรฅende avsnitt, och nu ska du installera Rails. Du kan installera Rails med ett paket frรฅn RailsInstaller, men problemet med detta รคr att du inte fรฅr den senaste versionen av de nรถdvรคndiga paketen.
Om du redan har den senaste Ruby och en baslinje med nรถdvรคndiga RubyGems och tillรคgg installerade. Allt du behรถver gรถra nu รคr att kรถra fรถljande kommando vid kommandotolken fรถr att fรฅ Rails pรฅ ditt system: 'gem install rails'.
Du mรฅste ocksรฅ installera node.js om du inte redan har det eftersom vissa bibliotek som Rails รคr beroende av krรคver en Javascript kรถrtid fรถr att fungera korrekt. Du kan fรฅ nod pรฅ https://nodejs.org.
Det รคr ett mer vanligt och fรถredraget sรคtt att utveckla pรฅ Windows. Rails community anvรคnder en Windows Delsystem fรถr Linux som tillhandahรฅller en GNU/Linux-miljรถ med kommandoradsverktyg, verktyg och vanliga applikationer direkt pรฅ Windows.
Installera Ruby pรฅ Mac
Din Mac har redan Ruby fรถrinstallerat pรฅ den. Den fรถrinstallerade versionen kan dock vara gammal, sรฅ du mรฅste installera en ny/senaste version.
Det enklaste sรคttet att gรถra detta รคr att anvรคnda en pakethanterare som t.ex Homebrew. Du kanske fรถrst mรฅste installera Homebrew genom att kรถra kommandot nedan i terminalen.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
Detta kommer att visa en varning och ber dig att ange ditt lรถsenord. Ange ditt Mac-lรถsenord (du kommer inte att se tecknen nรคr du skriver). Tryck bara pรฅ 'Enter' nรคr du รคr klar med ditt lรถsenord. Kรถr sedan detta enkla Homebrew-kommando fรถr att installera Ruby pรฅ din Mac.
brew install ruby
Och kรถr รคven detta kommando:
echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
Fรถr att stรคlla in den hรคr Ruby-installationen som standard Ruby som ska kรถras pรฅ ditt system och inte den fรถrinstallerade Ruby.
Fรถr att bekrรคfta att installationen lyckades kan du kรถra fรถljande i terminalen
ruby --version
detta kommer att skriva ut Ruby-versionsnumret som du har installerat. Utgรฅngen kommer att se ut ungefรคr
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Installerar Ruby pรฅ Ubuntu (Linux)
Det enklaste sรคttet att fรฅ Ruby installerad pรฅ din Ubuntu systemet รคr genom apt package manager. Du mรฅste kรถra fรถljande kommandon pรฅ terminalen fรถr att installera den senaste Ruby frรฅn Ubuntu fรถrrรฅden.
- sudo apt uppdatering โ Detta kommer att uppdatera standarden Ubuntu fรถrrรฅd
- sudo apt installera ruby-full โ Den kommer att ladda ner och installera den senaste Ruby
Fรถr att bekrรคfta att installationen lyckades kan du kรถra fรถljande 'ruby โversion,' detta kommer att skriva ut den Ruby-version du har installerat.
Montering av skenor pรฅ Ubuntu (Linux)
Du bรถr fรถlja stegen nedan fรถr att framgรฅngsrikt installera Rails pรฅ din Linux-maskin.
Steg 1) Uppdatera din dators รคdelstenshanterare genom att kรถra 'pรคrla uppdatering โsystem' vid terminalen eller kommandotolken.
Steg 2) Kรถrning "pรคrla installera skenor" fรถr att installera den senaste versionen av Rails pรฅ din dator.
Steg 3) Du bรถr installera bundler gem fรถr enkel Rails-applikations รคdelstensberoendehantering. Springa 'gem install bundler' att fรฅ det.
Tvรฅ principer fรถr Rails
Rails fรถljer grundlรคggande mjukvarudesignprinciper och uppmuntrar dig att anvรคnda dessa principer ocksรฅ.
De tvรฅ vanligaste รคr:
- Don't Repeat Yourself (DRY) โ detta gรถr att du skriver kortfattad, konsekvent och underhรฅllbar kod.
- Konvention รถver konfiguration โ Rails รคr fรถrkonfigurerad fรถr att anvรคnda fรถrnuftiga standardinstรคllningar som passar den vanligaste anvรคndningen. Detta gรถr din applikationsutveckling snabb, och du har ocksรฅ mindre kod att underhรฅlla.
Rails โ Projektfilstrukturer
Med Rails nu installerat pรฅ ditt system kan du skapa en Rails-applikation! Vi kommer att lรคra oss Ruby on Rails-exempel och hur man skapar en Todo-lista-applikation i denna Ruby on Rails-handledning. Kรถr fรถljande kommando 'rails new todo_app' i din terminal fรถr att skapa applikationen.
Detta kommando skapar en katalog med namnet "todo_app" i den aktuella katalogen med den grundlรคggande mappstrukturen fรถr en Rails-webbapplikation, som visas i bilden nedan:
Du kommer att gรฅ igenom huvudkatalogerna i detta Ruby on Rails-exempel.
app โ Den hรคr katalogen grupperar med olika underkataloger fรถr UI/layout (vyer och hjรคlpredor), styrenheten (kontrollerfiler) och modellerna (affรคrs-/applikationslogik).
app/kontroller โ Denna katalog lagrar kontrollerfiler som anvรคnds av Rails fรถr att hantera fรถrfrรฅgningar frรฅn klienten.
app/tillgรฅngar โ Den innehรฅller statiska filer, vilket รคr ett behov fรถr programmets grรคnssnitt grupperade i mappar baserat pรฅ deras typ โ JavaScript filer, bilder och stilmallar.
app/hjรคlpare โ Den hรคr underkatalogen innehรฅller hjรคlpfunktioner som gรถr din applikationsmodell, vy och kontrolllogik fokuserad, liten och enkel.
app/modeller โ Detta innehรฅller filer
som modellerar din applikations databas. Modellklasserna gรถr det mycket enkelt att arbeta med databasen.
app/visningar โ Denna spรคrrmall/layoutfiler som anvรคndaren av din applikation interagerar med. Mallarna รคr en kombination av HTML och data frรฅn databasen.
bin โ Den innehรฅller Rails-skript som startar din applikation. Det kan ocksรฅ innehรฅlla andra skript som du anvรคnder fรถr att konfigurera och uppgradera programmet.
Konfiguration โ Detta innehรฅller konfigurationsfiler โ databas.yml, miljรถ.rb, rutter.rb, etc. som din applikation behรถver kรถras.
DB โ Denna katalog innehรฅller filer/skript som anvรคnds fรถr att hantera din applikationsdatabas.
lib โ Denna katalog innehรฅller en utรถkad modul fรถr din applikation.
logga โ Detta innehรฅller loggfiler โ server.log, development.log, test.log och production.log, etc., som anvรคnds fรถr att felsรถka eller รถvervaka din applikation.
publik - Denna katalog innehรฅller statiska filer och kompilerade tillgรฅngar, sรฅsom HTML-filer, Javascript filer, bilder och stilmallar.
testa โ Den hรคr katalogen innehรฅller testfiler du skriver fรถr att testa din applikations funktionalitet.
tmp โ Den hรคr katalogen innehรฅller temporรคra filer som cache- och pid-filer.
Sรคljare - Denna katalog innehรฅller tredjepartsbibliotek.
Gemfile โ Den hรคr filen anger vad dina grundlรคggande รคdelstenskrav รคr fรถr att kรถra din webbapplikation. Du kan gruppera รคdelstenarna i utveckling, test eller produktion och Rails kommer att veta nรคr de ska inkludera varje รคdelsten.
Gemfile.lock โ Till skillnad frรฅn Gemfilen som uttryckligen listar de รคdelstenar du vill ha i din applikation, innehรฅller Gemfile.lock dessutom andra รคdelstenar som de du listar i Gemfilen beror pรฅ som sedan installeras automatiskt fรถr att tillfredsstรคlla beroenden.
Readme.md โ Du anvรคnder den hรคr filen fรถr att dela viktig information om din applikation, till exempel vad appen gรถr, hur du installerar och kรถr applikationen.
Rakefile โ Den hรคr filen innehรฅller olika definitioner av rake-uppgifter, vilket hjรคlper till att automatisera dagliga administrationsuppgifter fรถr din applikation.
config.ru โ Detta รคr en rackkonfigurationsfil som tillhandahรฅller ett grรคnssnitt till webbservern fรถr att starta din applikation.
Byt katalog till "todo_app" katalog Rails genererade och kรถrs 'rails server' fรถr att starta applikationen. Typ lokalvรคrd: 3000 i adressfรคltet i din webblรคsare bรถr du se bilden nedan om allt gick bra.
Detta รคr standardhemsidan fรถr din applikation, och du kommer att รคndra detta i det senare avsnittet av denna Ruby on Rails-handledning. Du kan stoppa servern genom att trycka pรฅ "Ctrl-C".
Rails โ Generera kommandon
Kommandot Rails generera anvรคnder sig av mallar fรถr att skapa en hel del anvรคndbara saker i din applikation. Du kan anvรคnda dessa generatorer fรถr att spara mycket tid.
Det hjรคlper genom att skriva boilerplate-kod, kod som รคr nรถdvรคndig fรถr att din webbapplikation ska fungera. Du kan springa "rรคls genererar" av sig sjรคlv vid kommandotolken eller Terminal fรถr att se en lista รถver tillgรคngliga generatorer som visas nedan:
Du kan ocksรฅ kรถra 'skenor genererar "kommando"' fรถr att se en beskrivning av vad kommandot gรถr. Den erbjuder bekvรคma alternativ som kan kรถras med kommandot och anvรคndningsexemplet. Bilden nedan visar resultatet av lรถpning'skenor genererar styrenhet':
Du kommer att anvรคnda kommandot fรถr att skapa stรคllningar fรถr att skapa skenorna fรถr att automatiskt skapa modellen, vyn och styrenheten fรถr att gรถra-listapplikationen du bygger. Springa' skenor genererar scaffold todo_list title:string description: text' i din terminal (kontrollera att du fortfarande finns i todo_app-katalogen).
Detta kommer att skapa ett fullstรคndigt CRUD (Skapa, lรคs, uppdatera och ta bort) webbgrรคnssnitt fรถr TodoLists-tabellen.
Ett annat anvรคndbart kommando att kรคnna till รคr "rรคls fรถrstรถr", det vรคnder pรฅ vad som helst "skenor genererar..." gรถr.
Rรคls โ strรคckning
Rails routingsystem, rails router, hanterar alla inkommande fรถrfrรฅgningar till din webbapplikation. Den gรถr detta genom att undersรถka URL:en fรถr de inkommande fรถrfrรฅgningarna och mappar sedan varje fรถrfrรฅgan till den kontrollรฅtgรคrd som ansvarar fรถr att hantera den, med hjรคlp av speciell syntax som anges i ruttfilen (config/routes.rb).
Ruttfilen hjรคlper till att kontrollera alla URL-aspekter av din webbapplikation. Rails anvรคnder som standard en RESTful-design baserad pรฅ REST-arkitektonisk stil, som ger en mappning mellan HTTP-verb och fรถrfrรฅgningar (URL:er) till kontrollerรฅtgรคrder.
Ruttfilen skapades nรคr du sprang "skenor nya" i ett tidigare avsnitt av denna handledning. Fortsรคtt med Todo-applikationen som du bygger, kรถr fรถljande' rails db:migrate' (du kommer att fรฅ veta vad detta gรถr inom kort)
Pรฅ din kommandorad, se till att du fortfarande รคr i roten av programmet (todo_app-katalogen).
Starta sedan servern igen med 'rails server'. Typ http://localhost:3000/todo_lists/ i din webblรคsare och tryck pรฅ Enter. Du bรถr fรฅ tillbaka en webbsida som visas i bilden nedan av Ruby on Rails exempel:
Det hรคr รคr Todo-listvyn som scaffoldkommandot genererade och den styrs av TodoListsControllers indexรฅtgรคrd.
Gรฅ vidare och lรคgg till en att gรถra-lista genom att klicka pรฅ "Ny att gรถra-lista" pรฅ sidan, du bรถr fรฅ sidan som visas nedan:
Observera att webbadressen har รคndrats till http://localhost:3000/todo_lists/new. Det hรคr รคr sidan fรถr att skapa en ny att gรถra-lista, och den styrs av TodoListsControllers nya metod/รฅtgรคrd.
Ange din uppgiftslistas titel och beskrivning i formulรคret och klicka pรฅ knappen Skapa uppgiftslista, URL:en ska รคndras till http://localhost:3000/todo_lists/1, som visas i bilden nedan med Ruby on Rails-kodexempel:
Detta รคr visningssidan fรถr en att gรถra-lista, och den styrs av TodoListsControllers visningsmetod/รฅtgรคrd. Om du gรฅr tillbaka till http://localhost:3000/todo_lists/, bรถr du nu se bilden nedan med en ny att gรถra-lista tillagd:
Rails kunde mappa de olika fรถrfrรฅgningarna (URL:erna) till motsvarande TodoListsControllers รฅtgรคrd med hjรคlp av ruttdefinitionen i config/routes.rb.
Om du tittar pรฅ den hรคr filen ser du en enda rad 'resurser: todo_lists', รคr Rails standardsรคtt fรถr att skriva vilsamma rutter. Denna enda linje skapar sju rutter, alla mappar till TodoLists-kontrollern.
Enligt konvention mappas varje kontrollers รฅtgรคrd ocksรฅ till en specifik CRUD-operation (Create, Read, Update och Delete) i databasen.
Du kan springa "rake rutter" i din kommandorad fรถr att se de olika rutter som รคr tillgรคngliga i din applikation. Bilden nedan visar resultatet av lรถpning "rรคlsrutter" i din kommandorad/terminal.
Rรคls โ utsikt
View-lagret รคr en av komponenterna i MVC-paradigmet och ansvarar fรถr att generera HTML-svar fรถr varje begรคran till din applikation. Rails anvรคnder som standard ERB (Embedded Ruby) som รคr ett kraftfullt mallsystem fรถr Ruby.
ERB gรถr skrivmallar enkla och underhรฅllbara genom att kombinera vanlig text med Ruby-kod fรถr variabel substitution och flรถdeskontroll. En ERB-mall har tillรคgget .html, .erb eller .erb.
Du kommer oftast att anvรคnda en kombination av endast tvรฅ taggmarkรถrer, som var och en gรถr att den inbรคddade koden bearbetas och hanteras pรฅ ett speciellt sรคtt.
En tagg med likhetstecken '<%= %>' indikerar att inbรคddad kod รคr ett uttryck och att resultatet av koden ska ersรคttas av renderaren nรคr den renderar mallen.
Den andra taggen utan likhetstecken '<% %>' indikerar fรถr renderaren att resultatet av koden inte ska ersรคttas/skrivas ut nรคr den renderar mallen.
Varje styrenhet i din Rails-applikation har en motsvarande underkatalog i app/visningar, och varje รฅtgรคrd/metod i en styrenhet har en motsvarande .html- och .erb-fil i den hรคr katalogen.
Ta en titt pรฅ appen/vyerna av todo-appen du bygger. Du hittar en underkatalog som heter "todo_lists" i denna underkatalog .html.erb filer med namn som motsvarar รฅtgรคrderna/metoderna i Todolistor styrenheten.
Rails โ ActiveRecord, Active Record Pattern och ORM
ActiveRecord รคr Ruby-implementeringen av Active Record-mรถnstret, som รคr ett enkelt mรถnster dรคr en klass representerar en tabell och en instans av klassen representerar en rad i den klassen.
ActiveRecord kallas populรคrt fรถr en ORM (Object Relational Mapping), en teknik som lรฅter dig hantera din databas med hjรคlp av ett sprรฅk du รคr mest bekvรคm med. Det รคr databasagnostisk sรฅ du kan enkelt vรคxla mellan databaser (till exempel SQLite, MySQL, PostgreSQL, SQL Server, Oracle, etc.). Denna svit mer fรถr ditt applikationskrav med samma kod/logik.
Sรฅ om du vill fรฅ en array som innehรฅller en lista รถver alla att gรถra-listor i din applikation, sรฅ istรคllet fรถr att skriva kod fรถr att initiera en anslutning till databasen, gรถr du nรฅgon sorts SQL SELECT-frรฅga och konverterar dessa resultat till en array.
Fรถr det behรถver du bara skriva 'TodoList.all' och Active Record ger dig arrayen fylld med TodoList-objekt som du kan spela med som du vill.
Allt du behรถver gรถra รคr att stรคlla in rรคtt konfiguration i config/database.yml, och Active Record kommer att rรคkna ut alla skillnader mellan de olika databassystemen. Sรฅ nรคr du byter frรฅn det ena till det andra behรถver du inte tรคnka pรฅ det.
Du fokuserar pรฅ att skriva kod fรถr din applikation, och Active Record kommer att tรคnka pรฅ detaljerna pรฅ lรฅg nivรฅ fรถr att ansluta dig till din databas. Active Record anvรคnder sig av namnkonventioner fรถr att skapa mappningen mellan modeller och databastabeller.
Rails pluraliserar dina modellklassnamn fรถr att hitta motsvarande databastabell. Sรฅ fรถr en klass TodoList kommer ActiveRecord att skapa en databastabell som heter TodoLists.
Rรคls โ Migrationer
Rails-migrering รคr helt enkelt ett skript som du anvรคnder fรถr att redigera din applikationsdatabas. Den anvรคnds fรถr att stรคlla in eller รคndra din databas och undviker att manuellt skriva SQL-kod fรถr att gรถra det.
Den anvรคnder Ruby fรถr att definiera รคndringar av databasschema och gรถr det mรถjligt att anvรคnda versionskontroll fรถr att hรฅlla din databas synkroniserad.
Rails Migrations anvรคnder ett Ruby Domain Specific Language (DSL). Detta fungerar som en abstraktion och gรถr det mรถjligt att anvรคnda eller รคndra din databasmotor baserat pรฅ dina krav.
De kan delas med alla som arbetar med programmet och kan ocksรฅ รฅterstรคllas fรถr att รฅngra eventuella รคndringar i databasen. Detta รคr en hรถg sรคkerhetsmekanism eftersom du inte behรถver bry dig om att gรถra permanent skada pรฅ din databas.
Rails โ ActiveRecord Associations
En koppling mellan tvรฅ ActiveRecord-modeller kallas en association. Association gรถr det mycket enklare att utfรถra operationer pรฅ de olika posterna i din kod. Det kan delas in i fyra kategorier: -
En till en: โ Detta indikerar att en post innehรฅller exakt en instans av en annan modell. Ett bra exempel รคr anvรคndarprofil. En anvรคndare har bara en profil. Det anvรคnder har en nyckelord.
En till mรฅnga: โ Detta รคr den vanligaste associationen och den indikerar att en modell har noll eller fler instanser av en annan modell. Din anvรคndning har en _mรฅnga nyckelord fรถr att beteckna denna association.
Mรฅnga till mรฅnga: โ Den hรคr kopplingen รคr lite mer komplicerad, och ActiveRecord erbjuder tvรฅ sรคtt att hantera den. Anvรคnda har_och_tillhรถr_mรฅnga och har mรฅnga, som ger dig tillgรฅng till relationen som definieras i en separat tabell.
Polymorf en till mรฅnga:- Detta รคr en mer avancerad fรถrening tillgรคnglig fรถr dig i Rails. Du kan anvรคnda den fรถr att definiera en modell som kan tillhรถra mรฅnga olika modeller pรฅ en enda association.
Rails โ ActiveRecord-valideringar
Validering hjรคlper till att sรคkerstรคlla att du har korrekt data eftersom att arbeta med fel data รคr en hemsk sak och kan kosta dig dina pengar och din verksamhet.
Validering ger ocksรฅ ett extra lager av sรคkerhet fรถr din applikation mot att skadliga anvรคndare fรฅr tillgรฅng till information i din databas. Rails erbjuder dig ett trevligt API av valideringshjรคlpare i ActiveRecord fรถr att hรฅlla din databas ren, sรคker och fri frรฅn fel.
ActiveRecord-valideringar kรถrs pรฅ modellobjekt innan de sparas i databasen, vilket gรถr dem mer tillfรถrlitliga och รคven bรคsta praxis att fรถlja nรคr du bygger din applikation.
Fรถljande ActiveRecord-metoder framkallar valideringar nรคr de anvรคnds eller anropas pรฅ modellobjekt โ skapa, skapa!, spara, spara!, uppdatera och uppdatera!. De med en smรคll (skapa!, spara! och uppdatera!) ta upp ett undantag om en post รคr ogiltig medan thothen'tt't't.
De vanligaste ActiveRecord-valideringshjรคlparna till ditt fรถrfogande รคr: -
Bekrรคftelse:โ Denna valideringshjรคlp รคr anvรคndbar fรถr att validera tvรฅ fรคlt som har samma post. t.ex. lรถsenord och lรถsenordsbekrรคftelse, det anvรคnds tillsammans med hjรคlpen fรถr nรคrvarovalidering.
Nรคrvaro:โ Detta kontrollerar att fรคltet inte รคr tomt.
unikhet: sรคkerstรคller unikt vรคrde fรถr ett fรคlt, t.ex. anvรคndarnamn
Lรคngd:- Att genomdriva en begrรคnsning av teckenlรคngden i ett fรคlt
Du kan ocksรฅ skapa din anpassade validering genom att anvรคnda valideringsmetoden och ge den namnet pรฅ den anpassade valideringsmetoden.
Du kan kolla modellens fel invรคnda fรถr att ta reda pรฅ varfรถr en validering. Fรถrhoppningsvis har du nรฅgra idรฉer fรถr att gรถra din applikation mer begrรคnsad och sรคkrare fรถr att bara tillรฅta sรคker data i din databas.
Rails โ ActionController
Rails-styrenheten รคr centrum fรถr din webbapplikation. Det underlรคttar och koordinerar kommunikationen mellan anvรคndaren, modellerna och รฅsikterna.
Dina kontrollerklasser รคrver frรฅn ApplicationController, som innehรฅller kod som kan kรถras i alla andra kontroller och den รคrver frรฅn ActionController-klassen.
Styrenheten tillhandahรฅller fรถljande till din applikation:
- Den dirigerar externa fรถrfrรฅgningar till interna รฅtgรคrder
- Den lyckas cache, vilket ger prestandahรถjningar till din applikation
- Den hanterar hjรคlpmetoder som utรถkar kapaciteten fรถr vymallar. Den hanterar ocksรฅ anvรคndarsessioner, vilket ger dem en smidig upplevelse med din app.
Rรคls โ Konfigurationer
Du kan konfigurera de olika komponenterna sรฅsom initialiserare, tillgรฅngar, generatorer, mellanprogram, etc. Genom att anvรคnda din Rails-applikationsinitierare och konfigurationsfiler i config-katalogen. Filer som config/application.rb, config/environments/development.rb och config/environments/test.rb etc. Du kan ocksรฅ konfigurera anpassade instรคllningar fรถr din applikation.
Rails โ Felsรถkning
Nรคr du bygger ut din applikation kommer det att komma en tid som du behรถver/mรฅste felsรถka din kod. Rails gรถr det enkelt att anvรคnda byebug pรคrla. Du kan starta en felsรถkningssession genom att lรคgga in nyckelordet "byebeg" var som helst i din applikationskod.
Detta kommer tillfรคlligt att stoppa exekveringen vid den tidpunkten. Byebug pรคrla ger dig flera kommandon att anvรคnda. De mest anvรคndbara รคr:
- Nรคsta: kommando som gรถr att du kan gรฅ till nรคsta kodrad och hoppa รถver alla metoder som anropas av exekveringen av den aktuella raden.
- steg: detta liknar kommandot 'next' men kommer att fรฅ dig att gรฅ in i varje anropat.
- bryta: detta stoppar kodexekveringen.
- fortsรคtta fortsรคtter exekveringskoden.
Det finns andra felsรถkningsรคdelstenar tillgรคngliga som "bรคnda", och de har alla liknande funktioner men lite olika syntax. Felsรถkning av รคdelstenar bรถr inte anvรคndas i produktionen eftersom detta innebรคr risker fรถr din applikation och dรฅliga erfarenheter fรถr dina applikationsanvรคndare.
Det finns loggfiler som du kan inspektera fรถr fel i produktionen och hantera dem. Du bรถr ocksรฅ fรถlja en TDD-metod (Testdriven Development) nรคr du utvecklar din applikation fรถr att sรคkerstรคlla att allt fungerar bra innan du distribuerar till produktion.
Sammanfattning
- Ruby รคr ett rent objektorienterat programmeringssprรฅk
- Ruby har en elegant syntax som รคr bรฅde lรคtt att lรคsa och skriva.
- Rails รคr ett utvecklingsramverk, skrivet i Ruby, fรถr att bygga webbapplikationer
- Installationsprocessen beror pรฅ ditt operativsystem.
- Rails รคr fรถrpackad som en Ruby pรคrla, och du kan anvรคnda den fรถr att bygga en mรคngd olika applikationer.
- Du kommer att skapa en att gรถra-lista-applikation i den hรคr handledningen, kรถr followincomm'n'n' 'rails netoda'p'p'p' i din terminal fรถr att skapa applikationen.
- Kommandot Rails generera anvรคnder sig av mallar fรถr att skapa en hel del anvรคndbara saker i din applikation.
- Rails routing system, rails router hjรคlper dig att hantera alla inkommande fรถrfrรฅgningar till din webbapplikation.
- View-lagret รคr en av komponenterna i MVC-paradigmet och รคr ansvarigt fรถr att generera HTML-svar fรถr varje begรคran till din applikation.
- ActiveRecord รคr Ruby-implementeringen av Active Record-mรถnstret.
- Rails-migrering รคr helt enkelt ett skript som du anvรคnder fรถr att redigera din applikationsdatabas.
- En koppling mellan tvรฅ ActiveRecord-modeller kallas en association.
- Validering hjรคlper till att sรคkerstรคlla att du har korrekt data eftersom att arbeta med fel data รคr en hemsk sak och kan kosta dig dina pengar och din verksamhet.
- Rails-styrenheten hjรคlper dig att underlรคtta och koordinera kommunikationen mellan anvรคndaren, modellerna och vyerna.
- Rail hjรคlper dig att konfigurera de olika komponenterna som initialiserare, tillgรฅngar, generatorer, mellanprogram, etc.













