Ruby on Rails-vejledning

Hvad er Ruby?

Rubin er et fortolket og objektorienteret programmeringssprog pรฅ hรธjt niveau. Det er et dynamisk open source-sprog, der har et fantastisk fรฆllesskab bag sig. Ruby er designet til enkelhed og produktivitet. Det opfordrer til at skrive human first og computer second software kode. Det blev skabt af Yukihiro Matsumoto i Japan i 1995.

Hvad er Rails?

Skinner er en udviklingsramme skrevet i Ruby til opbygning af webapplikationer. Det blev skabt som grundlaget for Basecamp-applikationen og blev derefter udgivet som en open source-software i 2004. Rails tilbyder mange indbyggede standardfunktioner og funktionaliteter, hvilket gรธr det til en passende mulighed for MVP-prototyping og udvikling.

Det blev skabt af David Heinemeier Hasson populรฆrt kendt som DHH. Det er et af de mest indflydelsesrige og populรฆre vรฆrktรธjer til at bygge webapplikationer. Det bruges af nogle af yndlingssider som Airbnb, Github, Shopify osv.

Hvorfor skinner?

Her er fordele/fordele ved at bruge Rails:

  • Rails er pakket som en Ruby-perle, og du kan bruge den til at bygge en rรฆkke forskellige applikationer.
  • Det giver dig mulighed for at bygge almindelige webapplikationer, e-handelsapplikationer, indholdsstyringssystem og mere.
  • Rails er en fuldstackramme, der inkluderer alt, hvad du behรธver for at oprette en databasedrevet webapplikation ved hjรฆlp af Model-View-Controller-mรธnsteret.
  • Det betyder, at alle lagene er bygget til at arbejde problemfrit sammen med mindre kode. Det krรฆver fรฆrre linjer kode end andre rammer.

Sรฅdan downloades og installeres Ruby pรฅ Windows

Installationsprocessen afhรฆnger af dit operativsystem. Du vil gennemgรฅ installationen af โ€‹โ€‹Ruby pรฅ Windows, Mac og Linux.

Trin 1) Download Rubyinstaller
Den nemmeste mรฅde at installere Ruby pรฅ din Windows computer er gennem Ruby Installer, som du kan downloade pรฅ https://rubyinstaller.org/.

Alt du skal gรธre er at kรธre det downloadede installationsprogram.

Trin 2) Klik pรฅ downloadet installationsprogram
Double-klik pรฅ det downloadede installationsprogram 'rubyinstaller-2.4.1-2-x64.exe'.

Trin 3) Accepter licensen
Vรฆlg alternativknappen 'Jeg accepterer licensen', og klik pรฅ knappen 'Nรฆste'. Dette skulle bringe dig til den nรฆste figur nedenfor:

Download og installer Ruby pรฅ Windows

Trin 4) Marker de fรธrste to afkrydsningsfelter
Marker de to fรธrste afkrydsningsfelter for at gรธre det nemmere at kรธre Ruby-scripts.

Klik pรฅ knappen 'Installer' for at starte installationen. Du bรธr se nedenstรฅende figur, nรฅr installationen er fuldfรธrt.

Download og installer Ruby pรฅ Windows

Trin 5) Klik pรฅ Afslut
Fjern ikke markeringen i afkrydsningsfeltet, der installerer MSYS2. Klik pรฅ "Udfรธr" for at fuldfรธre installationen, og et kommandopromptvindue vist i nedenstรฅende figur vil blive vist.

Download og installer Ruby pรฅ Windows

Trin 6) Installerer MSYS2
Dette trin installerer MSYS2, en byggeplatform, der har en pakkehรฅndtering til nem installation af pakker pรฅ Windows.

Tryk pรฅ Enter for at installere alle komponenterne, da de alle er nรธdvendige for at have et glat Ruby on Rails udviklingsmiljรธ at arbejde med pรฅ Windows.

Download og installer Ruby pรฅ Windows

Montering af skinner

Du skulle have Ruby installeret fra det forrige afsnit, og nu skal du installere Rails. Du kan installere Rails ved hjรฆlp af en pakke fra Rails Installer, men problemet med dette er, at du ikke fรฅr den nyeste version af de nรธdvendige pakker.

Hvis du allerede har den nyeste Ruby og et basissรฆt af nรธdvendige RubyGems og udvidelser installeret. Alt du skal gรธre nu er at kรธre fรธlgende kommando ved kommandoprompten for at fรฅ Rails pรฅ dit system: 'gem install rails.'

Du skal ogsรฅ installere node.js hvis du ikke allerede har det, fordi nogle biblioteker, som Rails afhรฆnger af, krรฆver en Javascript runtime til at fungere korrekt. Du kan fรฅ node pรฅ https://nodejs.org.

Det er en mere almindelig og foretrukken tilgang til at udvikle pรฅ Windows. Rails community bruger en Windows Undersystem til Linux, der giver et GNU/Linux-miljรธ med kommandolinjevรฆrktรธjer, hjรฆlpeprogrammer og almindelige applikationer direkte pรฅ Windows.

Installation af Ruby pรฅ Mac

Din Mac har allerede Ruby forudinstalleret pรฅ den. Den forudinstallerede version kan dog vรฆre gammel, og du skal derfor installere en ny/seneste version.

Den nemmeste mรฅde at gรธre dette pรฅ er ved at bruge en pakkehรฅndtering som f.eks homebrew. Du skal muligvis fรธrst installere Homebrew ved at kรธre kommandoen nedenfor i terminalen.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

Dette vil vise en advarsel og bede dig om at indtaste din adgangskode. Indtast din Mac-adgangskode (du vil ikke se tegnene, mens du skriver). Bare tryk pรฅ 'Enter', nรฅr du er fรฆrdig med at indtaste din adgangskode. Kรธr derefter denne simple Homebrew-kommando for at installere Ruby pรฅ din Mac.

brew install ruby

Og kรธr ogsรฅ denne kommando:

echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile

For at indstille denne Ruby installation som standard Ruby til at kรธre pรฅ dit system og ikke den forudinstallerede Ruby.

For at bekrรฆfte, at installationen var vellykket, kan du kรธre fรธlgende i terminalen

ruby --version

dette vil udskrive det Ruby-versionsnummer, du har installeret. Outputtet vil ligne noget

ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

Installerer Ruby pรฅ Ubuntu (Linux)

Den nemmeste mรฅde at fรฅ installeret Ruby pรฅ din Ubuntu systemet er gennem apt-pakkehรฅndteringen. Du skal kรธre fรธlgende kommandoer pรฅ terminalen for at installere den nyeste Ruby fra Ubuntu opbevaringssteder.

  • sudo apt opdatering - Dette vil opdatere standarden Ubuntu repositories
  • sudo apt installer ruby-full โ€“ Det vil downloade og installere den nyeste Ruby

For at bekrรฆfte, at installationen var vellykket, kan du kรธre fรธlgende 'ruby โ€“version,' dette vil udskrive den Ruby-version, du har installeret.

Montering af skinner pรฅ Ubuntu (Linux)

Du skal fรธlge nedenstรฅende trin for at installere Rails pรฅ din Linux-maskine.

Trin 1) Opdater din computer gem manager ved at kรธre 'perle opdatering โ€“system' ved terminalen eller kommandoprompten.

Trin 2) Kรธr 'perle installer skinner' for at installere den seneste version af Rails pรฅ din computer.

Trin 3) Du bรธr installere bundler gem for nem Rails-applikations-perle-afhรฆngighedsstyring. Lรธb 'perle install bundler' at fรฅ det.

To principper for Rails

Rails fรธlger grundlรฆggende softwaredesignprincipper og opfordrer dig til ogsรฅ at bruge disse principper.

De to mest almindelige er:

  • Gentag ikke dig selv (Tร˜R) โ€“ dette fรฅr dig til at skrive kortfattet, konsistent og vedligeholdelig kode.
  • Konvention over konfiguration โ€“ Rails er forudkonfigureret til at bruge fornuftige standardindstillinger, der passer til den mest almindelige brug. Dette gรธr din applikationsudvikling hurtig, og du har ogsรฅ mindre kode at vedligeholde.

Skinner โ€“ Projektfilstrukturer

Med Rails nu installeret pรฅ dit system kan du oprette en Rails-applikation! Vi vil lรฆre Ruby on Rails-eksempler og hvordan man opretter en Todo-listeapplikation i denne Ruby on Rails-tutorial. Kรธr fรธlgende kommando 'rails new todo_app' i din terminal for at oprette applikationen.

Denne kommando opretter en mappe med navnet 'todo_app' i den aktuelle mappe med den grundlรฆggende mappestruktur for en Rails-webapplikation, som vist i nedenstรฅende figur:

Skinner โ€“ Projektfilstrukturer

Du vil gennemgรฅ de vigtigste mapper i dette Ruby on Rails-eksempel.

app โ€“ Denne mappe grupperer ved hjรฆlp af forskellige undermapper til UI/layout (visninger og hjรฆlpere), controlleren (controllerfiler) og modellerne (forretnings-/applikationslogik).

app/controllere โ€“ Denne mappe gemmer controller-filer, der bruges af Rails til at hรฅndtere anmodninger fra klienten.

app/aktiver โ€“ Den indeholder statiske filer, som er et behov for applikationens front-end grupperet i mapper baseret pรฅ deres type โ€“ JavaScript filer, billeder og stylesheets.

app/hjรฆlpere โ€“ Denne undermappe indeholder hjรฆlpefunktioner, der gรธr din applikationsmodel, visning og controllerlogik fokuseret, lille og overskuelig.

app/modeller โ€“ Dette indeholder filer

den model af din applikations database. Modelklasserne gรธr arbejdet med databasen meget nemt.

app/visninger โ€“ Denne hold-skabelon/layout-filer brugeren af โ€‹โ€‹din applikation interagerer med. Skabelonerne er en kombination af HTML og data fra databasen.

skraldespand โ€“ Den indeholder Rails-scripts, der starter din applikation. Det kan ogsรฅ omfatte andre scripts, som du bruger til at konfigurere og opgradere applikationen.

Konfiguration โ€“ Dette indeholder konfigurationsfiler โ€“ database.yml, miljรธ.rb, ruter.rbosv., at din applikation skal kรธre.

DB โ€“ Denne mappe indeholder filer/scripts, der bruges til at administrere din applikationsdatabase.

lib โ€“ Denne mappe indeholder et udvidet modul til din applikation.

log โ€“ Dette indeholder logfiler - server.log, development.log, test.log og production.logosv., der bruges til fejlretning eller overvรฅgning af din applikation.

publikum - Denne mappe indeholder statiske filer og kompilerede aktiver, sรฅsom HTML-filer, Javascript filer, billeder og stylesheets.

test โ€“ Denne mappe indeholder testfiler, du skriver for at teste din applikations funktionalitet.

tmp โ€“ Denne mappe indeholder midlertidige filer som cache- og pid-filer.

sรฆlger - Denne mappe indeholder tredjepartsbiblioteker.

Gemfile โ€“ Denne fil specificerer, hvad dine grundlรฆggende krav er til at kรธre din webapplikation. Du kan gruppere รฆdelstene i udvikling, test eller produktion, og Rails ved, hvornรฅr de skal inkludere hver รฆdelsten.

Gemfile.lock โ€“ I modsรฆtning til Gemfile, der eksplicit viser de รฆdelstene, du รธnsker i din applikation, indeholder Gemfile.lock desuden andre รฆdelstene, som dem, du angiver i Gemfilen, afhรฆnger af, og som derefter automatisk installeres for at tilfredsstille afhรฆngighederne.

Readme.md โ€“ Du bruger denne fil til at dele vigtige detaljer om din applikation, sรฅsom hvad appen gรธr, hvordan du installerer og kรธrer applikationen.

Rakefile โ€“ Denne fil indeholder forskellige definitioner af rake-opgaver, som hjรฆlper med at automatisere daglige administrationsopgaver for din applikation.

config.ru โ€“ Dette er en Rack-konfigurationsfil, der giver en grรฆnseflade til webserveren for at starte din applikation.

Skift bibliotek til 'todo_app' directory Rails genereret og kรธrt 'rails server' for at starte applikationen. Type localhost: 3000 i adresselinjen i din webbrowser, skulle du se nedenstรฅende figur, hvis alt gik godt.

Skinner โ€“ Projektfilstrukturer

Dette er standardhjemmesiden for din applikation, og du vil รฆndre dette i det senere afsnit af denne Ruby on Rails-tutorial. Du kan stoppe serveren ved at trykke pรฅ 'Ctrl-C'.

Skinner โ€“ Generer kommandoer

Kommandoen Rails generer gรธr brug af skabeloner til at skabe en masse nyttige ting i din applikation. Du kan bruge disse generatorer til at spare en masse tid.

Det hjรฆlper ved at skrive boilerplate-kode, kode som er nรธdvendig for at din webapplikation kan fungere. Du kan lรธbe 'skinner genererer' af sig selv ved kommandoprompten eller Terminal for at se en liste over tilgรฆngelige generatorer som vist nedenfor:

Skinner โ€“ Generer kommandoer

Du kan ogsรฅ kรธre 'skinner genererer "kommando"' for at se en beskrivelse af, hvad kommandoen gรธr. Det tilbyder praktiske muligheder, der kan kรธres med kommando- og brugseksemplet. Nedenstรฅende figur viser output af lรธb'skinner genererer controller':

Skinner โ€“ Generer kommandoer

Du skal bruge kommandoen til at generere stilladser til automatisk at oprette modellen, visningen og controlleren til den opgavelisteapplikation, du bygger. Lรธb"skinner genererer stillads todo_list title:string description: text" i din terminal (tjek, at du stadig er i todo_app-mappen).

Dette vil skabe en komplet CRUD (Opret, lรฆs, opdater og slet) webgrรฆnseflade til TodoLists-tabellen.

En anden nyttig kommando at kende er 'skinner รธdelรฆgger' det vender hvad som helst 'skinner genererer...' gรธr.

Skinner โ€“ rutefรธring

Rails routing system, rails router, hรฅndterer alle indkommende forespรธrgsler til din webapplikation. Det gรธr det ved at undersรธge URL'en pรฅ de indkommende anmodninger og derefter kortlรฆgge hver anmodning til den controllerhandling, der er ansvarlig for at hรฅndtere den, ved hjรฆlp af speciel syntaks specificeret i rutefilen (config/routes.rb).

Rutefilen hjรฆlper med at kontrollere alle URL-aspekter af din webapplikation. Rails bruger som standard et RESTful-design baseret pรฅ REST-arkitektoniske stil, der giver en mapping mellem HTTP-verber og anmodninger (URL'er) til controllerhandlinger.

Rutefilen blev genereret, da du lรธb 'skinner nye' i et tidligere afsnit af denne รธvelse. Fortsรฆt med Todo-applikationen, som du bygger, kรธr fรธlgende'rails db:migrate' (du vil snart fรฅ at vide, hvad dette gรธr)

Pรฅ din kommandolinje skal du sรธrge for, at du stadig er i roden af โ€‹โ€‹programmet (todo_app-mappen).

Start derefter serveren igen med 'rails server'. Type http://localhost:3000/todo_lists/ i din browser og tryk pรฅ Enter. Du bรธr fรฅ en webside tilbage som vist i nedenstรฅende figur af Ruby on Rails eksempel:

Skinner โ€“ Routing

Dette er den Todo-listevisning, som scaffold-kommandoen genererede, og den styres af TodoListsControllers indekshandling.

Gรฅ videre og tilfรธj en todo-liste ved at klikke pรฅ 'New Todo List' pรฅ siden, du skulle fรฅ siden som vist nedenfor:

Skinner โ€“ Routing

Bemรฆrk, at URL'en er รฆndret til http://localhost:3000/todo_lists/new. Dette er siden for at oprette en ny todo-liste, og den styres af TodoListsControllerens nye metode/handling.

Indtast din opgavelistetitel og beskrivelse i formularen, og klik pรฅ knappen Opret opgaveliste, URL'en skal รฆndres til http://localhost:3000/todo_lists/1, vist i nedenstรฅende figur af Ruby on Rails kodeeksempel:

Skinner โ€“ Routing

Dette er showsiden for en todo-liste, og den styres af TodoListsControllerens showmetode/handling. Hvis du gรฅr tilbage til http://localhost:3000/todo_lists/, bรธr du nu se figuren nedenfor med en ny todo-liste tilfรธjet:

Skinner โ€“ Routing

Rails var i stand til at kortlรฆgge de forskellige anmodninger (URL'er) til den tilsvarende TodoListsControllers handling ved hjรฆlp af rutedefinitionen i config/routes.rb.

Hvis du tager et kig pรฅ denne fil, ser du en enkelt linje 'ressourcer: todo_lists', er Rails standard mรฅde at skrive afslappende ruter pรฅ. Denne enkelt linje opretter syv ruter, der alle er knyttet til TodoLists-controlleren.

Ifรธlge konventionen er hver controllers handling ogsรฅ knyttet til en specifik CRUD-operation (Create, Read, Update og Delete) i databasen.

Du kan kรธre 'rakeruter' i din kommandolinje for at se de forskellige tilgรฆngelige ruter i din applikation. Figuren nedenfor viser output af lรธb 'skinneruter' i din kommandolinje/terminal.

Skinner โ€“ Routing

Skinner โ€“ udsigt

View-laget er en af โ€‹โ€‹komponenterne i MVC-paradigmet og er ansvarlig for at generere HTML-svar for hver anmodning til din applikation. Skinner bruger som standard ERB (Embedded Ruby), som er et kraftfuldt skabelonsystem til Ruby.

ERB gรธr skriveskabeloner nemme og vedligeholdelige ved at kombinere almindelig tekst med Ruby-kode til variabel substitution og flowkontrol. En ERB-skabelon har filtypenavnet .html, .erb eller .erb.

Du vil for det meste kun bruge en kombination af to tag-markรธrer, som hver fรฅr den indlejrede kode til at blive behandlet og hรฅndteret pรฅ en bestemt mรฅde.

Et mรฆrke med et lighedstegn '<%= %>' angiver, at indlejret kode er et udtryk, og at resultatet af koden skal erstattes af rendereren, nรฅr den gengiver skabelonen.

Det andet tag uden lighedstegn '<% %>' angiver for rendereren, at resultatet af koden ikke skal erstattes/udskrives, nรฅr den gengiver skabelonen.

Hver controller i din Rails-applikation har en tilsvarende undermappe i app/visninger, og hver handling/metode i en controller har en tilsvarende .html- og .erb-fil i denne mappe.

Tag et kig pรฅ app/visninger af den todo-app, du bygger. Du vil finde en undermappe med navnet 'todo_lists' inde i denne undermappe .html.erb filer med navne svarende til handlingerne/metoderne i Todolister controller.

Skinner โ€“ ActiveRecord, Active Record Pattern og ORM

ActiveRecord er Ruby-implementeringen af โ€‹โ€‹Active Record-mรธnsteret, som er et simpelt mรธnster, hvor en klasse reprรฆsenterer en tabel, og en forekomst af klassen reprรฆsenterer en rรฆkke i den pรฅgรฆldende klasse.

ActiveRecord omtales populรฆrt som en ORM (Object Relational Mapping), en teknik, der giver dig mulighed for at administrere din database ved hjรฆlp af et sprog, du er mest komfortabel med. Det er databaseagnostisk, sรฅ du kan nemt skifte mellem databaser (f.eks SQLite, MySQL, PostgreSQL, SQL Server, Oracle, etc.). Denne suite mere til dit applikationskrav med samme kode/logik.

Sรฅ hvis du รธnsker at fรฅ et array, der indeholder en liste over alle todo-listerne i din applikation, sรฅ i stedet for at skrive kode for at starte en forbindelse til databasen, sรฅ lav en slags SQL SELECT-forespรธrgsel og konverter disse resultater til en array.

Til det skal du bare skrive 'TodoList.all' og Active Record giver dig arrayet fyldt med TodoList-objekter, som du kan lege med, som du vil.

Alt du skal gรธre er at konfigurere den rigtige konfiguration i config/database.yml, og Active Record vil finde ud af alle forskellene mellem de forskellige databasesystemer. Sรฅ nรฅr du skifter fra det ene til det andet, behรธver du ikke tรฆnke pรฅ det.

Du fokuserer pรฅ at skrive kode til din applikation, og Active Record vil tรฆnke pรฅ detaljerne pรฅ lavt niveau ved at forbinde dig til din database. Active Record gรธr brug af navngivningskonventioner til at skabe kortlรฆgningen mellem modeller og databasetabeller.

Rails pluraliserer dine modelklassenavne for at finde den tilsvarende databasetabel. Sรฅ for en klasse TodoList vil ActiveRecord oprette en databasetabel kaldet TodoLists.

Skinner โ€“ Migrationer

Rails-migrering er simpelthen et script, som du bruger til at redigere din applikationsdatabase. Det bruges til at opsรฆtte eller รฆndre din database og undgรฅr manuelt at skrive SQL-kode for at gรธre det.

Den bruger Ruby til at definere รฆndringer til databaseskemaet og gรธr det muligt at bruge versionskontrol til at holde din database synkroniseret.

Rails Migrations bruger et Ruby Domain Specific Language (DSL). Dette fungerer som en abstraktion og gรธr det muligt at bruge eller รฆndre din databasemotor baseret pรฅ dine krav.

De kan deles med alle, der arbejder pรฅ applikationen, og kan ogsรฅ rulles tilbage for at fortryde eventuelle รฆndringer i databasen. Dette er en hรธj sikkerhedsmekanisme, da du ikke behรธver at bekymre dig om at gรธre permanent skade pรฅ din database.

Rails โ€“ ActiveRecord Associations

En forbindelse mellem to ActiveRecord-modeller er kendt som en association. Association gรธr det meget nemmere at udfรธre operationer pรฅ de forskellige poster i din kode. Det kan opdeles i fire kategorier: -

En til en: โ€“ Dette indikerer, at en post indeholder prรฆcis รฉn forekomst af en anden model. Et godt eksempel er brugerprofil. En bruger har kun รฉn profil. Det bruger har _en nรธgleord.

ร‰n for mange: โ€“ Dette er den mest almindelige association, og den indikerer, at en model har nul eller flere forekomster af en anden model. Din brug har en _mange nรธgleord for at angive denne forening.

Mange til mange: โ€“ Denne tilknytning er lidt mere kompliceret, og ActiveRecord giver to mรฅder at hรฅndtere den pรฅ. Bruger har_og_tilhรธrer_mange og har mange, som giver dig adgang til den relation, der er defineret i en separat tabel.

Polymorf en til mange:- Dette er en mere avanceret forening tilgรฆngelig for dig i Rails. Du kan bruge den til at definere en model, der kan hรธre til mange forskellige modeller pรฅ en enkelt forening.

Skinner โ€“ ActiveRecord-valideringer

Validering hjรฆlper med at sikre, at du har korrekte data, fordi at arbejde med forkerte data er en forfรฆrdelig ting og kan koste dig dine penge og forretning.

Validering giver ogsรฅ et ekstra lag af sikkerhed for din applikation mod ondsindede brugere fra at fรฅ adgang til oplysninger i din database. Rails tilbyder dig en god API af valideringshjรฆlpere i ActiveRecord for at holde din database ren, sikker og fri for fejl.

ActiveRecord-valideringer kรธrer pรฅ modelobjekter, fรธr de gemmes i databasen, hvilket gรธr dem mere pรฅlidelige og ogsรฅ bedste praksis at fรธlge i opbygningen af โ€‹โ€‹din applikation.

Fรธlgende ActiveRecord-metoder fremkalder valideringer, nรฅr de bruges eller kaldes pรฅ modelobjekter โ€“ opret, opret!, gem, gem!, opdater og opdater!. Dem med et brag (opret!, gem! og opdatering!) rejser en undtagelse, hvis en post er ugyldig, mens thothen'tt't't.

De mest almindelige ActiveRecord valideringshjรฆlpere til din rรฅdighed er: -

Bekrรฆftelse:โ€“ Denne valideringshjรฆlper er nyttig til at validere to felter med samme indgang. f.eks. bekrรฆftelse af adgangskode og adgangskode, det bruges i forbindelse med tilstedevรฆrelsesvalideringshjรฆlperen.

Tilstedevรฆrelse:โ€“ Dette kontrollerer, at feltet ikke er tomt.

unikhed: sikrer unik vรฆrdi for et felt, f.eks. brugernavn

Lรฆngde:- For at hรฅndhรฆve en grรฆnse for tegnlรฆngde i et felt

Du kan ogsรฅ oprette din tilpassede validering ved at bruge valideringsmetoden og give den navnet pรฅ den tilpassede valideringsmetode.

Du kan tjekke modellens fejl genstand for at finde ud af, hvorfor en validering. Forhรฅbentlig har du nogle ideer til at gรธre din applikation mere begrรฆnset og mere sikker til kun at tillade sikre data i din database.

Skinner โ€“ ActionController

Rails-controlleren er centrum for din webapplikation. Det letter og koordinerer kommunikationen mellem brugeren, modellerne og synspunkterne.

Dine controllerklasser arver fra ApplicationController, der indeholder kode, der kan kรธres i alle andre controllere, og den arver fra ActionController-klassen.

Controlleren leverer fรธlgende til din applikation:

  • Det dirigerer eksterne anmodninger til interne handlinger
  • Det formรฅr at cache, hvilket giver ydelsesforรธgelse til din applikation
  • Det administrerer hjรฆlpemetoder, der udvider mulighederne for visningsskabeloner. Det administrerer ogsรฅ brugersessioner, hvilket giver dem en smidig oplevelse med din app.

Skinner โ€“ konfigurationer

Du kan konfigurere de forskellige komponenter sรฅsom initialisatorer, aktiver, generatorer, middlewares osv. Ved at bruge dine Rails-applikationsinitializere og konfigurationsfiler i config-mappen. Filer som config/application.rb, config/environments/development.rb og config/environments/test.rb osv. Du kan ogsรฅ fรฅ tilpassede indstillinger konfigureret til din applikation.

Skinner โ€“ Fejlretning

Efterhรฅnden som du bygger din applikation ud, vil der komme et tidspunkt, hvor du fรฅr brug for/nรธdt til at fejlsรธge din kode. Skinner gรธr det nemt at bruge byebug-perlen. Du kan starte en fejlsรธgningssession ved at indsรฆtte 'byebeg' nรธgleordet hvor som helst i din ansรธgningskode.

Dette vil midlertidigt stoppe udfรธrelsen pรฅ det tidspunkt. Byebug-perlen giver dig flere kommandoer, du kan bruge. De mest nyttige er:

  • nรฆste: kommando, der gรธr det muligt for dig at gรฅ til nรฆste kodelinje, og springe alle metoder, der pรฅberรฅbes af udfรธrelsen af โ€‹โ€‹den aktuelle linje, over.
  • trin: dette ligner 'nรฆste' kommando, men vil fรฅ dig til at trรฆde ind i hver pรฅkaldt.
  • bryde: dette stopper kodeudfรธrelsen.
  • fortsรฆt fortsรฆtter udfรธrelseskoden.

Der er andre debugging-perler tilgรฆngelige, sรฅsom 'pry', og de har alle lignende funktionaliteter, men lidt forskellig syntaks. Fejlfinding af รฆdelstene bรธr ikke bruges i produktionen, da dette udgรธr risici for din applikation og dรฅrlige oplevelse for dine applikationsbrugere.

Der er logfiler, som du kan inspicere for fejl i produktionen og hรฅndtere dem. Du bรธr ogsรฅ fรธlge en TDD-tilgang (testdrevet udvikling), nรฅr du udvikler din applikation for at sikre, at alt fungerer godt, fรธr du implementerer til produktion.

Resumรฉ

  • Ruby er et rent objektorienteret programmeringssprog
  • Ruby har en elegant syntaks, der bรฅde er let at lรฆse og skrive.
  • Rails er en udviklingsramme, skrevet i Ruby, til opbygning af webapplikationer
  • Installationsprocessen afhรฆnger af dit operativsystem.
  • Rails er pakket som en Ruby-perle, og du kan bruge den til at bygge en rรฆkke forskellige applikationer.
  • Du vil oprette en Todo-liste-applikation i denne tutorial, kรธr followincomm'n'n' 'rails netoda'p'p'p' i din Terminal for at oprette applikationen.
  • Kommandoen Rails generer gรธr brug af skabeloner til at skabe en hel masse nyttige ting i din applikation.
  • Rails routing system, rails router hjรฆlper dig med at hรฅndtere alle indkommende forespรธrgsler til din webapplikation.
  • View-laget er en af โ€‹โ€‹komponenterne i MVC-paradigmet og er ansvarlig for at generere HTML-svar for hver anmodning til din applikation.
  • ActiveRecord er Ruby-implementeringen af โ€‹โ€‹Active Record-mรธnsteret.
  • Rails-migrering er simpelthen et script, som du bruger til at redigere din applikationsdatabase.
  • En forbindelse mellem to ActiveRecord-modeller er kendt som en association.
  • Validering hjรฆlper med at sikre, at du har korrekte data, fordi at arbejde med forkerte data er en forfรฆrdelig ting og kan koste dig dine penge og forretning.
  • Rails-controlleren hjรฆlper dig med at lette og koordinere kommunikationen mellem brugeren, modellerne og visningerne.
  • Rail hjรฆlper dig med at konfigurere de forskellige komponenter sรฅsom initialiseringer, aktiver, generatorer, middleware osv.

Opsummer dette indlรฆg med: