1 00:00:00,000 --> 00:00:08,560 2 00:00:08,560 --> 00:00:10,410 >> GABRIEL GUIMARAES: Dette er CS50. 3 00:00:10,410 --> 00:00:14,740 Velkommen til Amazing Web Apps med Ruby on Rails. 4 00:00:14,740 --> 00:00:19,700 Så for alle, der er interesseret i web udvikling og lave hjemmesider, web 5 00:00:19,700 --> 00:00:26,510 applikationer, Ruby on Rails er dette fantastisk værktøj, der Twitter, GitHub, 6 00:00:26,510 --> 00:00:31,470 Groupon, og alle mulige virkelig rart, og store, er web-applikationer ved hjælp af i 7 00:00:31,470 --> 00:00:33,080 de sidste par år. 8 00:00:33,080 --> 00:00:37,190 Og det er en rigtig, rigtig cool funktion, en cool værktøj, 9 00:00:37,190 --> 00:00:39,290 fordi det er nyt. 10 00:00:39,290 --> 00:00:43,830 Så det har alle de nye magtfulde indarbejdet teknologier i en 11 00:00:43,830 --> 00:00:49,050 ramme, som hjælper dig med at håndtere alle mulige fantastiske ting. 12 00:00:49,050 --> 00:00:50,970 >> Men hvad er en ramme? 13 00:00:50,970 --> 00:00:55,700 Så rammer er dybest set noget, der skaber - 14 00:00:55,700 --> 00:00:59,680 når du starter en hjemmeside, hvis du startede fra bunden, ligesom du åbner 15 00:00:59,680 --> 00:01:04,530 gedit der, og du ønsker at kode alle i din HTML og kode alle dine 16 00:01:04,530 --> 00:01:08,130 PHP, alle dine CSS, alt fra bunden - 17 00:01:08,130 --> 00:01:09,690 der er bare at være en masse arbejde. 18 00:01:09,690 --> 00:01:13,940 Og en ramme bogstaveligt talt giver dig halvdelen af ​​hjemmesiden gjort. 19 00:01:13,940 --> 00:01:18,070 Så du starter med en halv hjemmeside der har alt der for dig. 20 00:01:18,070 --> 00:01:22,690 Ligesom database forbindelser, og alle mulige ting, du skal bekymre dig 21 00:01:22,690 --> 00:01:25,040 om, hvis du gør det fra bunden, du behøver ikke at bekymre sig om dem, 22 00:01:25,040 --> 00:01:26,480 detaljer lavt niveau. 23 00:01:26,480 --> 00:01:32,360 >> Men i dag vil vi til at eksportere en af de hjemmesider, som freshman af 24 00:01:32,360 --> 00:01:34,740 klasse af 2017 er formentlig bekendt. 25 00:01:34,740 --> 00:01:40,170 Så denne hjemmeside er den hjemmeside, som jeg gjorde for vores klasse i løbet af sommeren. 26 00:01:40,170 --> 00:01:46,500 Det var en hjemmeside, hvor de studerende på klassen af ​​2017 kunne logge ind og 27 00:01:46,500 --> 00:01:47,480 interagere med hinanden. 28 00:01:47,480 --> 00:01:49,610 Og så er det et kort - 29 00:01:49,610 --> 00:01:51,210 alle, hvor folk er. 30 00:01:51,210 --> 00:01:56,970 Og vi havde en bog spil, et sangene spil hvor vi så folks sange og 31 00:01:56,970 --> 00:01:57,970 folks bøger. 32 00:01:57,970 --> 00:02:00,480 Hvad de kan lide at læse, hvad de kan lide at lytte til. 33 00:02:00,480 --> 00:02:06,830 Og den mest interessante del af det er at det bogstaveligt tog mig tre timer 34 00:02:06,830 --> 00:02:07,840 at kode det hele. 35 00:02:07,840 --> 00:02:13,050 Fordi hvis jeg havde at gøre alt fra bunden, som åbner gedit det 36 00:02:13,050 --> 00:02:16,400 ville sandsynligvis have taget me 20, 30 timer. 37 00:02:16,400 --> 00:02:20,210 Men med Ruby on Rails, fordi alt var allerede sat op for mig, 38 00:02:20,210 --> 00:02:25,550 det tog mig kun tre eller fire timer, eller noget lignende. 39 00:02:25,550 --> 00:02:27,580 >> Så hvad er Ruby on Rails. 40 00:02:27,580 --> 00:02:32,720 Ruby on Rails, igen, som vi allerede sagt, er en ramme. 41 00:02:32,720 --> 00:02:34,800 Dette er et billede af en ramme. 42 00:02:34,800 --> 00:02:37,460 Så du kommer til at begynde at bygge en hus, har du allerede halvdelen af 43 00:02:37,460 --> 00:02:38,320 hus gjort. 44 00:02:38,320 --> 00:02:38,970 Det er rammen. 45 00:02:38,970 --> 00:02:40,560 Og Ruby on Rails er præcis sådan. 46 00:02:40,560 --> 00:02:44,440 Og du skal tænke på det som, du starter en hjemmeside, du starter din web 47 00:02:44,440 --> 00:02:48,830 ansøgning, vi allerede har halvdelen af ​​det gjort der. 48 00:02:48,830 --> 00:02:50,400 Men først og fremmest, hvad er Ruby? 49 00:02:50,400 --> 00:02:53,510 50 00:02:53,510 --> 00:02:58,310 Ruby on Rails bruger den model, view controller, som er paradigme, som 51 00:02:58,310 --> 00:02:59,930 er en virkelig interessant - 52 00:02:59,930 --> 00:03:04,250 og alle de programmer i dag bruge noget lignende. 53 00:03:04,250 --> 00:03:08,630 Denne idé om at adskille tingene i tre dele, modellen, udsigten, og 54 00:03:08,630 --> 00:03:09,630 controlleren. 55 00:03:09,630 --> 00:03:11,950 Vi kommer til at snakke lidt mere om det senere. 56 00:03:11,950 --> 00:03:13,400 >> Først, hvad er Ruby? 57 00:03:13,400 --> 00:03:14,500 Så dette er Ruby. 58 00:03:14,500 --> 00:03:17,850 Og det er et symbol på den sprog kaldet Ruby. 59 00:03:17,850 --> 00:03:24,170 Ruby er en af ​​de newish fortolkede sprog, så script. 60 00:03:24,170 --> 00:03:29,530 Det er et sprog, der ikke er kompileret Ligesom C. Det er udarbejdet på flugt. 61 00:03:29,530 --> 00:03:33,220 Så det er godt, fordi, ligesom PHP, for eksempel fortolkes også er 62 00:03:33,220 --> 00:03:33,960 ikke kompileret. 63 00:03:33,960 --> 00:03:35,710 Det er godt, fordi dens bærbare. 64 00:03:35,710 --> 00:03:39,740 Så du bare videregive din kode fra én maskine til en anden. 65 00:03:39,740 --> 00:03:44,440 Fra en Linux-maskine, til en Windows maskine, til en Mac eller Apple-maskine, eller 66 00:03:44,440 --> 00:03:45,240 noget lignende. 67 00:03:45,240 --> 00:03:49,160 Og du behøver ikke at bekymre dig om oplysninger om hver af de specifikke 68 00:03:49,160 --> 00:03:49,890 operativsystemer. 69 00:03:49,890 --> 00:03:51,330 Det kommer til at arbejde overalt. 70 00:03:51,330 --> 00:03:54,700 >> Og Ruby er et sprog, - 71 00:03:54,700 --> 00:03:56,920 jer sikkert huske dette. 72 00:03:56,920 --> 00:04:01,440 Folk bruger hash-funktion implementeret i C for hash tabellen 73 00:04:01,440 --> 00:04:04,860 i sidste uge og havde alle mulige af segmentering fejl. 74 00:04:04,860 --> 00:04:12,360 Og så tingene skulle bekymre sig om denne streng jeg der, strengen i 75 00:04:12,360 --> 00:04:20,380 her, var faktisk små bogstaver eller store bogstaver, eller disse slags bekymrende 76 00:04:20,380 --> 00:04:21,410 detaljer lavt niveau. 77 00:04:21,410 --> 00:04:26,180 Godt i Ruby, hvis du ønsker at gennemføre en hash tabel, det er præcis, hvordan du 78 00:04:26,180 --> 00:04:27,100 skabe en hash tabel. 79 00:04:27,100 --> 00:04:30,280 Du siger, ordbog, det er navnet min variabel = "Hash.new". 80 00:04:30,280 --> 00:04:34,680 Og så ordbog ["foo"], og når jeg er tilføjer foo til min hash tabel, er jeg 81 00:04:34,680 --> 00:04:35,960 bare at sige foo er der. 82 00:04:35,960 --> 00:04:38,070 >> Og så hvis jeg ønskede at kontrollere, om foo var der, jeg bare sige, hvis 83 00:04:38,070 --> 00:04:40,270 ordbog ["foo"] == true afkast sandt. 84 00:04:40,270 --> 00:04:41,560 Whoa, og det er din hash tabellen. 85 00:04:41,560 --> 00:04:44,280 Det er gennemførelsen af hash tabellen i Ruby. 86 00:04:44,280 --> 00:04:50,200 Så alle ønskede de kunne have brugte noget som Ruby til sidst 87 00:04:50,200 --> 00:04:51,450 uges PSET, right? 88 00:04:51,450 --> 00:04:54,410 89 00:04:54,410 --> 00:04:59,050 Vi har alle mulige grunde til at ønske at bruge et sprog som Ruby. 90 00:04:59,050 --> 00:05:01,380 Ruby har perler. 91 00:05:01,380 --> 00:05:04,000 Perle er et navn for en slags bibliotek i Ruby. 92 00:05:04,000 --> 00:05:07,490 >> Så alle mulige interessante funktioner at du kan have, for eksempel, hvis jeg 93 00:05:07,490 --> 00:05:09,280 ønsker at integrere min ansøgning. 94 00:05:09,280 --> 00:05:12,470 At Harvard 2017 ansøgning blev integreret til Facebook. 95 00:05:12,470 --> 00:05:15,810 Så man kan logge ind via Facebook, til app. 96 00:05:15,810 --> 00:05:19,760 Så hvis du vil gøre det, behøver du ikke behøver at bekymre sig om at sende nogle 97 00:05:19,760 --> 00:05:23,760 HTTP-anmodning til Facebook, og venter for svaret, og tvinger 98 00:05:23,760 --> 00:05:25,150 respons, og bla, bla, bla. 99 00:05:25,150 --> 00:05:29,120 Du skal bare hente den perle, gør alt det for dig. 100 00:05:29,120 --> 00:05:30,750 Og så behøver du ikke behøver at bekymre sig om alt dette. 101 00:05:30,750 --> 00:05:33,670 >> Og så masser af hjælp online, selvfølgelig. 102 00:05:33,670 --> 00:05:37,040 Der er mange, mange, mange hjemmesider, kommer til at hjælpe dig både med 103 00:05:37,040 --> 00:05:38,880 Ruby og med Rails. 104 00:05:38,880 --> 00:05:40,530 Og det er masser af sjov at kode. 105 00:05:40,530 --> 00:05:46,770 Præcis fordi du kan stoppe bekymrende om disse ikke så sjove problemer. 106 00:05:46,770 --> 00:05:50,690 Ligesom hvis noget er små bogstaver eller stort bogstav, og så hvorfor er dette 107 00:05:50,690 --> 00:05:54,500 giver dig en segmenteringsfejl, og du virkelig kan dykke ned i meget 108 00:05:54,500 --> 00:05:55,460 interessante ting. 109 00:05:55,460 --> 00:05:59,650 At dykke ned i de rigtig seje problemer. 110 00:05:59,650 --> 00:06:02,420 >> Så Ruby er ligesom til C i en vis forstand. 111 00:06:02,420 --> 00:06:05,950 Så det kommer ikke til at være, at stort et spring faktisk. 112 00:06:05,950 --> 00:06:09,470 Så sætter, det er vores print app i Ruby. 113 00:06:09,470 --> 00:06:12,790 Jeg tror, ​​du kunne bruge print også, men sætter er, hvad alle bruger. 114 00:06:12,790 --> 00:06:14,490 Så sætter blot "Hello World". 115 00:06:14,490 --> 00:06:21,400 Du kunne, eller du kan ikke have parentesen omkranser 116 00:06:21,400 --> 00:06:23,280 "Hello World" der. 117 00:06:23,280 --> 00:06:25,350 Du kan bare vælge, om eller ikke at bruge den. 118 00:06:25,350 --> 00:06:26,780 Og så x = "1". 119 00:06:26,780 --> 00:06:29,030 En while-løkke ser temmelig det samme. 120 00:06:29,030 --> 00:06:30,630 Det bare har mindre syntaks. 121 00:06:30,630 --> 00:06:32,590 Det er lidt renere en lille smule. 122 00:06:32,590 --> 00:06:37,380 Og derefter, hvis x> 25 puts "Big!" og ellers sætter "Small ...". 123 00:06:37,380 --> 00:06:39,070 Og det er sådan C i den forstand. 124 00:06:39,070 --> 00:06:41,630 >> Så hvis man ser på det, kan du fremgangsmåde sandsynligvis forstå 125 00:06:41,630 --> 00:06:42,890 alt, hvad der foregår. 126 00:06:42,890 --> 00:06:47,750 Men det er mere kraftfuld. 127 00:06:47,750 --> 00:06:54,520 Mere magtfulde, fordi, mere end det, det kan gøre tingene er ikke det - 128 00:06:54,520 --> 00:06:55,750 en slags hackage en lille smule. 129 00:06:55,750 --> 00:06:57,430 I C kunne man ikke gøre i bare gøre med én linje. 130 00:06:57,430 --> 00:06:58,680 For eksempel sætter "Jeg er # {x}". 131 00:06:58,680 --> 00:07:04,330 132 00:07:04,330 --> 00:07:11,100 Dette er blot syntaks for at sætte værdien af x her, og ikke udskrive 133 00:07:11,100 --> 00:07:12,160 tegn x. 134 00:07:12,160 --> 00:07:17,850 I C du havde at gøre procent d, og derefter sætte op variablen x efter 135 00:07:17,850 --> 00:07:19,730 komma her, eller noget lignende. 136 00:07:19,730 --> 00:07:22,220 >> Og i Ruby der er en forkortelse for bare at gøre det. 137 00:07:22,220 --> 00:07:27,830 Og sætter dette, hvis x> 3, så du kan sætte hvis alle på én linje. 138 00:07:27,830 --> 00:07:29,010 Og så en liste. 139 00:07:29,010 --> 00:07:33,320 Lister i C, ligesom et array, er du nødt til holde styr på hvor stor din array er eller 140 00:07:33,320 --> 00:07:34,720 ellers får du en segmentering fejl. 141 00:07:34,720 --> 00:07:36,210 Array er kun én type. 142 00:07:36,210 --> 00:07:38,790 Så det er enten en vifte af afgift eller et array af heltal. 143 00:07:38,790 --> 00:07:43,620 I dette tilfælde, jeg oprettet en liste her, det er et array, der har den første 144 00:07:43,620 --> 00:07:48,450 element er en snor, John, og derefter fire, to - de er heltal. 145 00:07:48,450 --> 00:07:53,590 Og så vil jeg bare tilføje, liste, den Venstre Vinkelbeslag, Venstre 146 00:07:53,590 --> 00:07:54,820 Vinkelbeslag, tre. 147 00:07:54,820 --> 00:07:58,170 Det betyder blot tilføje noget til min liste. 148 00:07:58,170 --> 00:08:01,630 >> Så det er lidt mere interessant, fordi hvis du ønsker at bruge dette som 149 00:08:01,630 --> 00:08:03,920 bare en simpel liste af heltal, du kunne, totalt. 150 00:08:03,920 --> 00:08:05,530 Det er helt fint. 151 00:08:05,530 --> 00:08:06,750 Bare sætte heltal der. 152 00:08:06,750 --> 00:08:10,240 Men hvis du ønskede at gøre noget, der er mere overbevisende, som har andre 153 00:08:10,240 --> 00:08:11,690 ting, der har - 154 00:08:11,690 --> 00:08:15,480 Jeg ved det ikke, alle slags lister i der, eller andre genstande, der er mere 155 00:08:15,480 --> 00:08:16,970 interessant, kan du helt gøre det. 156 00:08:16,970 --> 00:08:17,880 Det er helt fint. 157 00:08:17,880 --> 00:08:21,210 Og hvis du ønsker at gentage gennem listen, kan du bruge 158 00:08:21,210 --> 00:08:24,850 mere C-ish form for tilgang. 159 00:08:24,850 --> 00:08:29,970 Det er for-løkke, at du indleder en variabel, i = "1", eller i = "0". 160 00:08:29,970 --> 00:08:32,980 Og så skal du gå, og gentage, og få alle elementerne. 161 00:08:32,980 --> 00:08:37,559 >> Men du kan også bruge denne mere Ruby-lignende tilgang. 162 00:08:37,559 --> 00:08:40,289 Det er ligesom en list.each. 163 00:08:40,289 --> 00:08:45,230 Det er bare at sige, vende mig alle elementer i listen. 164 00:08:45,230 --> 00:08:49,120 Og gøre med hvert element, kalder dem elem. 165 00:08:49,120 --> 00:08:51,880 Så dette er blot et navn, som jeg er give til hvert element. 166 00:08:51,880 --> 00:08:56,630 Og nu dette kommer til at gentage for alle de elementer, og elem, går det 167 00:08:56,630 --> 00:09:00,790 at være den måde, som vi adgang at enkelt element. 168 00:09:00,790 --> 00:09:04,310 Så du kunne helt holde sig til C tilgang, men det virker også. 169 00:09:04,310 --> 00:09:07,970 Og det er nøjagtig det samme, OK. 170 00:09:07,970 --> 00:09:13,830 >> Og bortset fra, at det er rigtig, virkelig nemt at integrere Ruby og HTML 171 00:09:13,830 --> 00:09:17,010 Da du fyre er interesseret i webapplikationer. 172 00:09:17,010 --> 00:09:20,070 HTML er afgjort noget, du kommer til at bruge en masse. 173 00:09:20,070 --> 00:09:25,820 Og her, hvis du ønskede at sætte Ruby i HTML, bare starte her, <%. 174 00:09:25,820 --> 00:09:28,500 Det betyder, her Ruby starter. 175 00:09:28,500 --> 00:09:32,130 Og så%>, lidt ligesom PHP i den forstand. 176 00:09:32,130 --> 00:09:35,520 Her Ruby slutter, og så kan du bare sætte dit hvis i her. 177 00:09:35,520 --> 00:09:39,400 Og så har jeg nogle variable user.logged_in. 178 00:09:39,400 --> 00:09:45,120 I Ruby, vi normalt tilføje dem enten forhør mærke eller udråbstegn 179 00:09:45,120 --> 00:09:48,210 mærket, som en bank karakter, blot at slags 180 00:09:48,210 --> 00:09:49,480 skelne mellem vores funktioner. 181 00:09:49,480 --> 00:09:52,780 Men du bare sætte det for din egen skyld. 182 00:09:52,780 --> 00:09:56,910 Det er ikke noget, der ændrer noget i funktionalitet. 183 00:09:56,910 --> 00:10:01,160 >> Så bare for at minde mig om, at dette er en funktion - og funktioner i Ruby, 184 00:10:01,160 --> 00:10:06,650 snarere end C, som jeg sagde allerede, de behøver ikke parenteser. 185 00:10:06,650 --> 00:10:09,740 Så logget på ting, der er en funktion, der er en metode. 186 00:10:09,740 --> 00:10:12,990 Men du behøver ikke eksplicit behøver at sætte parentes derinde. 187 00:10:12,990 --> 00:10:16,030 Så bare at spørge, hvis brugerens logget ind, og hvis brugerens logget ind, nu 188 00:10:16,030 --> 00:10:17,100 HTML starter igen. 189 00:10:17,100 --> 00:10:21,670 Så velkommen, og her Jeg udskriver user.name. 190 00:10:21,670 --> 00:10:22,920 Og det er det. 191 00:10:22,920 --> 00:10:24,970 192 00:10:24,970 --> 00:10:30,420 Så det er ret ligetil, hvordan du integrerer Ruby med din HTML. 193 00:10:30,420 --> 00:10:34,560 Og ressourcer, som jeg sagde, er der alle former for ressourcer til Ruby. 194 00:10:34,560 --> 00:10:39,560 Du fyre kan alle se det op bagefter fordi både video og 195 00:10:39,560 --> 00:10:40,875 dias, kommer til at være tilgængelige online. 196 00:10:40,875 --> 00:10:44,620 197 00:10:44,620 --> 00:10:47,180 >> Og lad os nu komme ind i Rails. 198 00:10:47,180 --> 00:10:48,330 Rails er kærlighed. 199 00:10:48,330 --> 00:10:49,230 Rails - 200 00:10:49,230 --> 00:10:51,030 så Ruby er hans sprog. 201 00:10:51,030 --> 00:10:54,340 OK, ligesom PHP, ligesom Python. 202 00:10:54,340 --> 00:10:59,980 Det er et højt niveau sprog, ikke kan lide C. C'er en mellemvej, sprog lavt niveau i 203 00:10:59,980 --> 00:11:05,240 den forstand, at Ruby behøver du ikke at bekymre sig om hukommelse omfordeling, og 204 00:11:05,240 --> 00:11:07,300 pegepinde, og den slags ting. 205 00:11:07,300 --> 00:11:11,120 Men Rails er dette program, blev skrevet i Ruby. 206 00:11:11,120 --> 00:11:15,610 Og det bruger Ruby, for at få denne rammer for dig at være i stand til at 207 00:11:15,610 --> 00:11:18,990 bygge fantastiske webapplikationer. 208 00:11:18,990 --> 00:11:21,940 >> Så du er nødt til først at installere Ruby on din maskine, men de fleste maskiner 209 00:11:21,940 --> 00:11:22,630 allerede har det. 210 00:11:22,630 --> 00:11:24,800 Og derefter installere skinner på toppen af ​​det. 211 00:11:24,800 --> 00:11:26,540 Vi kommer til at tale om det senere. 212 00:11:26,540 --> 00:11:28,100 Og hvorfor Rails? 213 00:11:28,100 --> 00:11:31,470 Så MVC, det er den model view-controller vi talte om lidt 214 00:11:31,470 --> 00:11:36,050 bit, gør alting enklere, fordi den deler ting, der er 215 00:11:36,050 --> 00:11:42,420 begrebsmæssigt forskellig i forskellige dele af din ansøgning. 216 00:11:42,420 --> 00:11:45,930 Mindre tid brugt på problemer lavt niveau, igen, og meget, meget 217 00:11:45,930 --> 00:11:46,820 populære lige nu. 218 00:11:46,820 --> 00:11:52,130 Så for alle dem der er interesseret i opstart scene, eller i noget 219 00:11:52,130 --> 00:11:58,435 som at starte virksomheder, og folk på markedet for teknologi, der er 220 00:11:58,435 --> 00:12:02,440 starte deres egen virksomhed lige nu er virkelig, virkelig fans af Ruby on 221 00:12:02,440 --> 00:12:04,120 Skinner, fordi det er så hurtigt. 222 00:12:04,120 --> 00:12:07,510 >> Så du kan få noget op at køre på mindre end en dag, og det er 223 00:12:07,510 --> 00:12:10,410 virkelig en meget overbevisende argument for at bruge Ruby. 224 00:12:10,410 --> 00:12:13,460 Og skinner 4,0 - 225 00:12:13,460 --> 00:12:15,920 det er meget frisk fra ovnen nu. 226 00:12:15,920 --> 00:12:16,930 Så Rails 4,0 - 227 00:12:16,930 --> 00:12:20,180 Jeg tror, ​​den første udgivelse var i marts i år. 228 00:12:20,180 --> 00:12:23,460 Og det er virkelig rart, det har alle mulige former for nye, smarte funktioner. 229 00:12:23,460 --> 00:12:30,290 Så Ruby on Rails er en ramme, der er konstant opdateret til at have alle 230 00:12:30,290 --> 00:12:31,540 af den nye teknologi. 231 00:12:31,540 --> 00:12:33,710 232 00:12:33,710 --> 00:12:39,800 >> Første gang jeg forsøgte at bruge Ruby on Rails, jeg havde dette problem, fordi jeg 233 00:12:39,800 --> 00:12:44,540 lavet min første web-applikation, og det lignede det. 234 00:12:44,540 --> 00:12:49,020 Så det skaber alle disse filer til dig, og jeg havde ingen idé om, hvad - 235 00:12:49,020 --> 00:12:50,780 hvad er det? 236 00:12:50,780 --> 00:12:54,850 Det skabte alle disse filer, og kun jeg ønskede at skabe et simpelt program, en 237 00:12:54,850 --> 00:12:57,140 simpel HTML hjemmeside. 238 00:12:57,140 --> 00:12:59,680 Og jeg kunne ikke engang gøre noget. 239 00:12:59,680 --> 00:13:02,430 Så jeg var lidt overvældet. 240 00:13:02,430 --> 00:13:08,350 Men det er en ting, når du forstå det, alt bliver så 241 00:13:08,350 --> 00:13:09,190 meget klarere. 242 00:13:09,190 --> 00:13:15,750 Så du skal ikke blive overvældet af den første synet af det, du skaber i første omgang. 243 00:13:15,750 --> 00:13:18,430 >> Så hvad der sker, er Rails skaber alle disse filer. 244 00:13:18,430 --> 00:13:20,470 Så en af ​​det er doc, dokumentation. 245 00:13:20,470 --> 00:13:23,080 Db, der er relateret til databasen. 246 00:13:23,080 --> 00:13:25,060 Lib, der er biblioteker log. 247 00:13:25,060 --> 00:13:28,200 Public, script, og nogle ting. 248 00:13:28,200 --> 00:13:32,110 Temmelig meget alt du kommer til at bekymre sig om, er den app mappe, deroppe. 249 00:13:32,110 --> 00:13:34,430 Det er den mappe, der indeholder din ansøgning. 250 00:13:34,430 --> 00:13:35,540 Alle de andre filer - 251 00:13:35,540 --> 00:13:37,770 nogle af dem er vigtige, og du er kommer til at lære om det senere. 252 00:13:37,770 --> 00:13:42,040 Men de er her kun for at indeholde rammer. 253 00:13:42,040 --> 00:13:46,420 Så de første hjørnesten i huset du fyre er ved at opbygge, OK? 254 00:13:46,420 --> 00:13:47,730 >> Men den app mappe - 255 00:13:47,730 --> 00:13:49,630 det er det virkelig vigtigt. 256 00:13:49,630 --> 00:13:53,050 Og app mappe har aktiver. 257 00:13:53,050 --> 00:13:57,690 Aktiver er temmelig meget alt der kommer. 258 00:13:57,690 --> 00:14:01,890 Billeder for eksempel, alt hvad der er statiske, der kommer til at blive hentet 259 00:14:01,890 --> 00:14:03,450 til dit websted. 260 00:14:03,450 --> 00:14:06,850 Så billeder, JavaScript, CSS - 261 00:14:06,850 --> 00:14:08,520 den slags ting er aktiver. 262 00:14:08,520 --> 00:14:11,310 263 00:14:11,310 --> 00:14:12,260 Controllers - 264 00:14:12,260 --> 00:14:15,190 vi kommer til at tale mere om hvad er controllere, modeller, 265 00:14:15,190 --> 00:14:16,800 og felter i et sekund. 266 00:14:16,800 --> 00:14:20,760 Og hjælpere er funktioner, som du kan bruge hele din kode 267 00:14:20,760 --> 00:14:22,800 at hjælpe dig med at gøre noget. 268 00:14:22,800 --> 00:14:25,800 Funktioner som logget ind, for eksempel - user.loggedin. 269 00:14:25,800 --> 00:14:29,500 Det er en funktion, som du sandsynligvis nødt til at bruge i alle dele af din 270 00:14:29,500 --> 00:14:30,030 ansøgning. 271 00:14:30,030 --> 00:14:33,590 Så du kan sætte noget lignende der i din hjælper. 272 00:14:33,590 --> 00:14:34,370 >> Afsendere - 273 00:14:34,370 --> 00:14:41,480 det er hvis du kommer til at sende en e-mail til dine brugere, du 274 00:14:41,480 --> 00:14:43,420 ønsker at bruge en mailer. 275 00:14:43,420 --> 00:14:46,420 Og modeller og synspunkter, vi kommer til at tale om det lige nu. 276 00:14:46,420 --> 00:14:52,450 Så model opfattelse controller, der er den grundlæggende hjørnesten i Ruby on 277 00:14:52,450 --> 00:14:55,730 Skinner, og de fleste rammer dag, for at være ærlig. 278 00:14:55,730 --> 00:15:01,180 Så igen, vi adskille alle vores kode i tre forskellige dele. 279 00:15:01,180 --> 00:15:02,590 Modellen - 280 00:15:02,590 --> 00:15:04,620 modellen principielt databasen. 281 00:15:04,620 --> 00:15:06,090 Det håndterer tingene i databasen. 282 00:15:06,090 --> 00:15:10,790 >> Så hver tabel i databasen har en tilsvarende fil inden for modellen. 283 00:15:10,790 --> 00:15:13,330 Så det er lidt af en tabel for dine brugere. 284 00:15:13,330 --> 00:15:18,250 Så du lagring af oplysninger som brugernavn, deres e-mails, deres 285 00:15:18,250 --> 00:15:20,970 adresse, deres adgangskode, og sådan noget. 286 00:15:20,970 --> 00:15:24,535 Du kommer til at have en fil i modellen kaldte bruger rb - 287 00:15:24,535 --> 00:15:26,240 rb for Ruby. 288 00:15:26,240 --> 00:15:30,180 Og der kommer til at have alle af de metoder og variabler. 289 00:15:30,180 --> 00:15:34,130 Variablerne vil svare til brugeren navn, e-mail og 290 00:15:34,130 --> 00:15:35,370 alt. 291 00:15:35,370 --> 00:15:37,760 >> Og du kommer til at have de metoder. 292 00:15:37,760 --> 00:15:42,690 Det vil være noget om - 293 00:15:42,690 --> 00:15:46,400 du kommer til at håndtere denne information i databasen. 294 00:15:46,400 --> 00:15:50,220 Sådan opretter du en model med Rails, du bare bruge Rails genererer. 295 00:15:50,220 --> 00:15:54,990 Og for at skabe ting i Rails, du faktisk har brug for terminalen. 296 00:15:54,990 --> 00:15:58,770 Så det er en meget terminal baseret ramme. 297 00:15:58,770 --> 00:16:02,530 Du skal bare logge ind på terminalen, og gør Rails, generere model. 298 00:16:02,530 --> 00:16:04,670 Og navnet på den model er brugeren. 299 00:16:04,670 --> 00:16:10,270 Og jeg vil bare have to variabler, to kolonner, i mit bord. 300 00:16:10,270 --> 00:16:11,450 Så det er e-mail. 301 00:16:11,450 --> 00:16:13,080 E-mail er en streng type. 302 00:16:13,080 --> 00:16:15,450 Password, password er også en streng type. 303 00:16:15,450 --> 00:16:16,520 De er de eneste to ting. 304 00:16:16,520 --> 00:16:19,160 Det er lidt af en forsimplet bruger tabel. 305 00:16:19,160 --> 00:16:22,490 Men du kan helt sætte et hundrede ting er der, hvis du ville. 306 00:16:22,490 --> 00:16:27,620 >> Og Rails gør det også meget, meget enkel at have alle 307 00:16:27,620 --> 00:16:30,040 former for database relationer. 308 00:16:30,040 --> 00:16:36,100 Så normalt, når du har tabeller i din database, de er ikke meget 309 00:16:36,100 --> 00:16:37,570 uafhængige af hinanden. 310 00:16:37,570 --> 00:16:39,392 Lad os tænke over. 311 00:16:39,392 --> 00:16:42,960 Du ønsker at købe og sælge produkter online. 312 00:16:42,960 --> 00:16:46,620 OK, så du har en hjemmeside, hvor du ønsker at købe og sælge produkter. 313 00:16:46,620 --> 00:16:55,060 Så hver bruger har mange produkter, denne bruger er villig til at sælge. 314 00:16:55,060 --> 00:17:00,970 Og hver bruger har også mange transaktioner der er i gang, eller 315 00:17:00,970 --> 00:17:01,920 noget lignende. 316 00:17:01,920 --> 00:17:05,430 Og transaktionerne er med en anden bruger. 317 00:17:05,430 --> 00:17:08,310 Hver transaktion tilhører to forskellige brugere. 318 00:17:08,310 --> 00:17:10,560 Brugeren, der er at købe og den bruger, der er sælger. 319 00:17:10,560 --> 00:17:13,920 >> Så dem er den såkaldte database relationer. 320 00:17:13,920 --> 00:17:17,890 Og her har vi netop de søgeord, har mange og tilhører. 321 00:17:17,890 --> 00:17:19,500 Disse er de vigtigste. 322 00:17:19,500 --> 00:17:22,410 Og du vil bare sige, for Dette er eksempelvis et eksempel på en 323 00:17:22,410 --> 00:17:25,740 model i Harvard 2017 hjemmeside. 324 00:17:25,740 --> 00:17:28,820 Igen, de studerende i her - 325 00:17:28,820 --> 00:17:32,870 hver elev på hjemmesiden, studerende er en model, er en database tabel. 326 00:17:32,870 --> 00:17:37,560 Hver elev havde mange bøger, fordi du kunne sige, hvad er din favorit 327 00:17:37,560 --> 00:17:38,630 bøger, til højre. 328 00:17:38,630 --> 00:17:44,450 Så hver bog tilhører en elev hernede. 329 00:17:44,450 --> 00:17:46,910 Og attribut tilgængelige - 330 00:17:46,910 --> 00:17:49,580 der er bare at sige, de er de variabler. 331 00:17:49,580 --> 00:17:53,050 De er de variabler tilgængelige fra denne model. 332 00:17:53,050 --> 00:17:58,570 Og variablerne er forfatter til bogen, beskrivelse, genre og 333 00:17:58,570 --> 00:17:59,870 bogens titel. 334 00:17:59,870 --> 00:18:02,700 Så bare oplysningerne om bogen. 335 00:18:02,700 --> 00:18:06,410 >> Og her har jeg en metode, der simpelthen sorterer alt. 336 00:18:06,410 --> 00:18:10,710 Så definere og slutter her, det er bare sige, her kommer min metode. 337 00:18:10,710 --> 00:18:13,220 Self.sorted_all. 338 00:18:13,220 --> 00:18:16,390 Det er bare, at give mig alt sorteret, og det er hvordan du implementerer 339 00:18:16,390 --> 00:18:22,360 sortering algoritme, som er forholdsvis let. 340 00:18:22,360 --> 00:18:27,430 Men dybest set, det er sådan en model ser ud, OK. 341 00:18:27,430 --> 00:18:32,990 Er der nogen der har spørgsmål vedrørende denne database ting? 342 00:18:32,990 --> 00:18:33,736 Relationer? 343 00:18:33,736 --> 00:18:36,430 Er det forstået? 344 00:18:36,430 --> 00:18:37,125 Ja. 345 00:18:37,125 --> 00:18:38,490 >> PUBLIKUM: Kan du gøre den slags algoritme? 346 00:18:38,490 --> 00:18:41,960 >> GABRIEL GUIMARAES: Den sortering algoritme, OK. 347 00:18:41,960 --> 00:18:45,340 Når du vænner dig til Ruby syntaks, det kommer til at være klar. 348 00:18:45,340 --> 00:18:48,800 Men dybest set, elems er Book.all. 349 00:18:48,800 --> 00:18:50,820 Så bogen er navnet på min model. 350 00:18:50,820 --> 00:18:55,670 Når du opretter en model, det kommer med alle mulige gode metoder for dig. 351 00:18:55,670 --> 00:18:58,810 Så dot.all er en metode, returnerer alle bøger. 352 00:18:58,810 --> 00:19:02,560 Men finder, for eksempel, ville søge efter én bog og returnere den bog, eller 353 00:19:02,560 --> 00:19:03,840 noget lignende. 354 00:19:03,840 --> 00:19:05,990 Og så elems er alt. 355 00:19:05,990 --> 00:19:08,870 Og jeg siger bare elems.sort. 356 00:19:08,870 --> 00:19:11,300 Sorter er en indbygget Ruby funktion. 357 00:19:11,300 --> 00:19:13,526 >> Og, gør AB. 358 00:19:13,526 --> 00:19:15,940 Så dette gør igen er - 359 00:19:15,940 --> 00:19:17,400 du kommer til at sortere. 360 00:19:17,400 --> 00:19:19,850 Men du kommer til at få dette argument for mig. 361 00:19:19,850 --> 00:19:25,160 Og argumentet bruger - dette er en af de hårdere ting i Ruby Faktisk, 362 00:19:25,160 --> 00:19:26,920 dette gør ting. 363 00:19:26,920 --> 00:19:31,470 Men når du forstår det alt kommer meget, meget intuitiv. 364 00:19:31,470 --> 00:19:37,140 Så ab, dette siger det sted holdere, som jeg har tænkt mig at bruge - ligesom 365 00:19:37,140 --> 00:19:41,760 de variabler, jeg har tænkt mig at bruge, er kommer til at hedde a og b.. 366 00:19:41,760 --> 00:19:43,380 Og det er de bøger. 367 00:19:43,380 --> 00:19:47,120 >> Så fordi slags behov for at sammenligne elementer, huske det? 368 00:19:47,120 --> 00:19:49,760 Så når du sortere tingene, du sammenligne to elementer. 369 00:19:49,760 --> 00:19:51,900 Jeg har tænkt mig at sige, at hver gang du kommer til at sammenligne - 370 00:19:51,900 --> 00:19:54,350 så dette er, jeg passerer for at sortere et argument. 371 00:19:54,350 --> 00:19:59,370 Og argumentet er alt fra do til og her, OK? 372 00:19:59,370 --> 00:20:02,980 Og dette argument er bare at fortælle sortere hvordan man kan sammenligne. 373 00:20:02,980 --> 00:20:07,460 Sorter ville arbejde her, men det ville sammenligne med deres 374 00:20:07,460 --> 00:20:09,530 standard sammenligne algoritme. 375 00:20:09,530 --> 00:20:13,810 Jeg vil have den til at sammenligne i en meget specifik måde, nemlig når bogen 376 00:20:13,810 --> 00:20:16,900 blev oprettet, da hver Bogen blev oprettet. 377 00:20:16,900 --> 00:20:21,090 >> Så jeg siger, siger navnet på den første bog er en og navnet på den 378 00:20:21,090 --> 00:20:27,620 anden bog som b, jeg vil sortere sortere noget, der bygger på b.created_at dette 379 00:20:27,620 --> 00:20:30,000 mærkelige symbol, a.created_at. 380 00:20:30,000 --> 00:20:34,350 Og det underlige symbol er stenografi for hvis man er større end den 381 00:20:34,350 --> 00:20:35,380 anden, tilbage 1. 382 00:20:35,380 --> 00:20:37,450 Hvis man er lig med den anden returnere nul. 383 00:20:37,450 --> 00:20:41,180 Hvis man er mindre end den andre, afkast minus 1. 384 00:20:41,180 --> 00:20:43,435 Så det er hvad der underligt symbol er. 385 00:20:43,435 --> 00:20:46,680 386 00:20:46,680 --> 00:20:47,500 >> Men det er ikke vigtigt. 387 00:20:47,500 --> 00:20:52,780 Jeg mener, hvad jeg vil have jer til at få nu er tanken, at databasen - 388 00:20:52,780 --> 00:20:54,150 du kan have den model der. 389 00:20:54,150 --> 00:20:59,850 Så du behøver ikke at bekymre dig om tilslutning og brug af SQL-sætning, 390 00:20:59,850 --> 00:21:00,500 og sådan noget. 391 00:21:00,500 --> 00:21:04,920 Det kan også skabe dørene til SQL-injektion og alle 392 00:21:04,920 --> 00:21:06,460 mulige sikkerhedsproblemer. 393 00:21:06,460 --> 00:21:07,930 I dette tilfælde behøver du ikke bekymre sig om det. 394 00:21:07,930 --> 00:21:11,880 Du skal bare bruge metoder som book.all. 395 00:21:11,880 --> 00:21:15,210 Og det i baggrunden naturligvis kommer til din database, og det er 396 00:21:15,210 --> 00:21:17,570 vil bruge en SQL-sætning at få alle de bøger. 397 00:21:17,570 --> 00:21:19,650 Men du behøver ikke at bekymre sig om det. 398 00:21:19,650 --> 00:21:24,090 Det er takeaway, OK? 399 00:21:24,090 --> 00:21:26,790 >> Og når du har en belongs_to erklæring som dette, det betyder, at 400 00:21:26,790 --> 00:21:31,780 når du har en bog objekt, du kan se, hvad er dens studerende. 401 00:21:31,780 --> 00:21:34,130 Så der studerende har denne bog? 402 00:21:34,130 --> 00:21:38,760 Så kan vi bare bruge book.student, og der giver dig, hvad den studerende er. 403 00:21:38,760 --> 00:21:42,440 Og det er en rigtig feature at have. 404 00:21:42,440 --> 00:21:43,950 >> OK, nu udsigten. 405 00:21:43,950 --> 00:21:48,380 Så modellen er, hvad der interagerer med databasen, right? 406 00:21:48,380 --> 00:21:52,240 Udsigten er dybest set HTML, og CSS, og nogle JavaScript. 407 00:21:52,240 --> 00:21:55,080 Og det er, hvad brugeren faktisk ser. 408 00:21:55,080 --> 00:21:56,540 Brugeren kommer ikke til at se din database. 409 00:21:56,540 --> 00:22:00,290 Han kommer til at se nogle data fra database indlejret i fremviseren. 410 00:22:00,290 --> 00:22:04,940 411 00:22:04,940 --> 00:22:08,410 Ruby on Rails gør det virkelig enkel at lave felter. 412 00:22:08,410 --> 00:22:12,780 For det første fordi det allerede skaber det for dig, ud af kassen, et layout. 413 00:22:12,780 --> 00:22:16,200 >> Et layout er dybest set noget, - 414 00:22:16,200 --> 00:22:24,230 hvis alle dine sider har et logo på toppen og, ved jeg ikke, nogle menu eller 415 00:22:24,230 --> 00:22:29,000 noget, at alle dine sider andel i fælles, så du ikke 416 00:22:29,000 --> 00:22:34,830 nødt til at skabe mange, mange, mange HTML filer, hvor alle filerne har, 417 00:22:34,830 --> 00:22:36,830 samme HTML-kode. 418 00:22:36,830 --> 00:22:40,700 Jeg mener, det er dum, fordi du er bare gentage kode mellem forskellige filer. 419 00:22:40,700 --> 00:22:42,480 Det er bestemt ikke en god tilgang. 420 00:22:42,480 --> 00:22:45,660 >> Så Ruby on Rails skaber dette layout for dig. 421 00:22:45,660 --> 00:22:49,770 Og det er bare at sige, alle mine sider kommer til at have denne HTML, dette hoved 422 00:22:49,770 --> 00:22:54,805 titel her, og de er typografiark link tag. 423 00:22:54,805 --> 00:22:56,800 Tilslut her hele mit CSS. 424 00:22:56,800 --> 00:23:01,194 Tilslut her hele mit JavaScript og nogle meta tags. 425 00:23:01,194 --> 00:23:04,440 Det er bare noget, de gøre automatisk for dig. 426 00:23:04,440 --> 00:23:07,490 Og så ender hovedet, nu her begynder kroppen. 427 00:23:07,490 --> 00:23:09,780 Og nu er det mit egentlige indhold. 428 00:23:09,780 --> 00:23:16,620 Så hvis jeg ønskede at sætte noget lignende, en menu her, ville jeg sætte det lige over 429 00:23:16,620 --> 00:23:19,600 dette sted, eller noget lignende, så alle mine sider delte det. 430 00:23:19,600 --> 00:23:21,730 Så layout deles af alle siderne. 431 00:23:21,730 --> 00:23:26,500 >> Nu, hvor udbyttet her bare siger, nej hvilke sider det er i, bare sagen 432 00:23:26,500 --> 00:23:30,560 stik i indholdet af denne side i her, okay? 433 00:23:30,560 --> 00:23:33,770 Og nu er det, for eksempel, Indholdet af en side, der kommer til at være 434 00:23:33,770 --> 00:23:38,950 sat i dette udbytte erklæring automatisk ved Rails. 435 00:23:38,950 --> 00:23:40,700 Men dette er et layout delt alle sider. 436 00:23:40,700 --> 00:23:42,500 Og dette er et eksempel på én side. 437 00:23:42,500 --> 00:23:46,410 Og det er netop den side der viser alle de bøger. 438 00:23:46,410 --> 00:23:49,390 Så dette er en grundlæggende HTML tabel op øverst. 439 00:23:49,390 --> 00:23:53,730 Så notering bøger, en titel, forfatter, beskrivelse, genre. 440 00:23:53,730 --> 00:24:00,810 >> Og her bruger vi, igen, nogle Ruby syntaks @ books.each-- 441 00:24:00,810 --> 00:24:07,720 @ Slags siger, at din variabel er global i en vis forstand. 442 00:24:07,720 --> 00:24:10,940 Fordi denne variabel var faktisk erklæret i controlleren, der 443 00:24:10,940 --> 00:24:12,840 du kommer til at se lige nu. 444 00:24:12,840 --> 00:24:18,570 Men bare tage for givet, at dette @ Bøger er en variabel, der er en liste over 445 00:24:18,570 --> 00:24:20,000 alle bøgerne. 446 00:24:20,000 --> 00:24:24,580 Så books.each behøver, og igen, det er bare at sige, hvordan vil du navngive 447 00:24:24,580 --> 00:24:29,580 hver af de iteratorer så vi ikke at bekymre sig om en fire, int i 448 00:24:29,580 --> 00:24:30,630 blah, blah, blah. 449 00:24:30,630 --> 00:24:33,760 Vi skal bare tage hver af de elementer og bruge dem. 450 00:24:33,760 --> 00:24:38,890 >> Så er dette bogen, og så bare udskrive her. book.title, book.author, 451 00:24:38,890 --> 00:24:41,020 book.description og blah, blah, blah. 452 00:24:41,020 --> 00:24:42,940 Og her er en link_to. 453 00:24:42,940 --> 00:24:46,840 Så link_to er bare et link tag at en bruger kan klikke på og 454 00:24:46,840 --> 00:24:49,040 går til en anden hjemmeside. 455 00:24:49,040 --> 00:24:51,160 Link_to, viser den pågældende bog. 456 00:24:51,160 --> 00:24:56,480 Så hvis brugeren er meget interesseret i denne bog, så han kan klikke på show. 457 00:24:56,480 --> 00:24:59,350 Eller klik på redigere, hvis han vil at redigere bogen. 458 00:24:59,350 --> 00:25:03,560 Eller ødelægge, hvis han ønsker at slette bogen fra databasen. 459 00:25:03,560 --> 00:25:06,260 OK, betyder det giver mening? 460 00:25:06,260 --> 00:25:08,610 Godt. 461 00:25:08,610 --> 00:25:10,600 >> Endelig controlleren. 462 00:25:10,600 --> 00:25:17,150 Så dybest set regulatoren grænsefladen mellem 463 00:25:17,150 --> 00:25:20,040 model og udsigten. 464 00:25:20,040 --> 00:25:25,120 Så modellen er den del af dit kode, har database - 465 00:25:25,120 --> 00:25:27,620 hver tabel i database en respektiv fil i 466 00:25:27,620 --> 00:25:30,120 model, og så videre. 467 00:25:30,120 --> 00:25:34,890 Og hvordan gør modellen og visningen interagere? 468 00:25:34,890 --> 00:25:36,990 Så gennem regulatoren. 469 00:25:36,990 --> 00:25:43,620 Hvad en controller gør, er det den model for sådan noget, for eksempel, 470 00:25:43,620 --> 00:25:46,510 lægge alle af bogen inde af en variabel. 471 00:25:46,510 --> 00:25:47,760 Ligesom denne ene, @ bøger. 472 00:25:47,760 --> 00:25:50,200 473 00:25:50,200 --> 00:25:54,800 >> Og det skal være globalt med dette på ting, fordi det vil være 474 00:25:54,800 --> 00:25:56,180 tilgås af visningen. 475 00:25:56,180 --> 00:26:00,000 Det kommer ikke til at blive brugt inden for selve controlleren. 476 00:26:00,000 --> 00:26:03,160 Og det bare forsinker oplysninger, visningen vil bruge. 477 00:26:03,160 --> 00:26:08,030 For eksempel kontrolenheden hvis brugeren er online. 478 00:26:08,030 --> 00:26:09,620 Og hvordan gør den det? 479 00:26:09,620 --> 00:26:11,760 Det faktisk anmoder model da modellen har 480 00:26:11,760 --> 00:26:12,890 information om brugeren. 481 00:26:12,890 --> 00:26:15,840 Det har en brugers tabel bøgerne bord, andre tabeller. 482 00:26:15,840 --> 00:26:18,560 Så controlleren spørger, om brugeren er online. 483 00:26:18,560 --> 00:26:23,760 Hvis brugeren er online styreenheden håndterer ting som at sætte en cookie, 484 00:26:23,760 --> 00:26:28,120 eller sådan noget, for at sætte præg sige, at brugeren er online. 485 00:26:28,120 --> 00:26:29,930 Ingen grund til at logge ind igen. 486 00:26:29,930 --> 00:26:34,080 >> Og det kommer til at indlæse en variabel kaldet bruger, for eksempel, at 487 00:26:34,080 --> 00:26:35,130 visning kan bruge. 488 00:26:35,130 --> 00:26:42,375 Og udsigten kan lægge noget her, for eksempel, velkommen user.name. 489 00:26:42,375 --> 00:26:46,040 Så det kommer til at sige, velkommen John, velkommen James - 490 00:26:46,040 --> 00:26:47,390 sådan noget, ikke? 491 00:26:47,390 --> 00:26:50,380 Så alle de variabler, der anvendes i view vil blive lagt i 492 00:26:50,380 --> 00:26:54,190 controller og vil være trukket op fra modellen. 493 00:26:54,190 --> 00:26:58,310 494 00:26:58,310 --> 00:27:00,555 >> Dette er et eksempel på en styreenhed. 495 00:27:00,555 --> 00:27:03,140 496 00:27:03,140 --> 00:27:08,640 Så vi har dybest set, hver - 497 00:27:08,640 --> 00:27:10,010 vi kalder de ting handlinger. 498 00:27:10,010 --> 00:27:11,570 Så indeks er en handling. 499 00:27:11,570 --> 00:27:13,820 Det er en Ruby funktion. 500 00:27:13,820 --> 00:27:16,160 Det er en Ruby metode derinde. 501 00:27:16,160 --> 00:27:19,350 Men for controlleren opkald de ting handlinger. 502 00:27:19,350 --> 00:27:24,830 Og hver handling er relateret til en rute. 503 00:27:24,830 --> 00:27:29,350 Så her denne rute, for eksempel, er en get Redegørelse / bøger. 504 00:27:29,350 --> 00:27:37,500 Så hvis du går til harvard2017.com/books, hvad der kommer til at ske, er denne kode er 505 00:27:37,500 --> 00:27:40,630 kommer til at hedde. 506 00:27:40,630 --> 00:27:44,290 >> Og der er en fil - 507 00:27:44,290 --> 00:27:46,010 lad mig åbne denne virkelig hurtig. 508 00:27:46,010 --> 00:27:51,310 509 00:27:51,310 --> 00:27:55,386 Der er en fil kaldet rå fil. 510 00:27:55,386 --> 00:27:57,920 Det er ikke åbne. 511 00:27:57,920 --> 00:28:02,330 Så der er en fil kaldet rå fil der dybest set matcher - 512 00:28:02,330 --> 00:28:03,580 åh, nu er det åbne. 513 00:28:03,580 --> 00:28:15,900 514 00:28:15,900 --> 00:28:17,550 Her ruter. 515 00:28:17,550 --> 00:28:24,440 Så dybest set matcher en stamme, aktivering / nyt for eksempel til 516 00:28:24,440 --> 00:28:27,810 noget i controlleren. 517 00:28:27,810 --> 00:28:31,580 Så der er denne controller kaldet aktivering controller, men herude, 518 00:28:31,580 --> 00:28:32,790 vi har bøger, for eksempel. 519 00:28:32,790 --> 00:28:33,740 Så matcher - 520 00:28:33,740 --> 00:28:39,040 bøger / nyt, til controlleren bøger, handlingen nyt. 521 00:28:39,040 --> 00:28:41,290 Så dybest set, meget ligetil ting. 522 00:28:41,290 --> 00:28:43,970 523 00:28:43,970 --> 00:28:48,770 >> Og her, hvis du skulle få / bøger, skråstreg ID af bøgerne, skråstreg nye, 524 00:28:48,770 --> 00:28:53,250 du kommer til at gå til den pågældende Ruby metode dernede. 525 00:28:53,250 --> 00:28:58,210 Så her, hvad dette indeks gør er bare indlæser bog log. 526 00:28:58,210 --> 00:28:59,570 Det er noget, - 527 00:28:59,570 --> 00:29:02,160 Jeg logger alle bøgerne i en log. 528 00:29:02,160 --> 00:29:03,050 Og sortere det hele. 529 00:29:03,050 --> 00:29:05,870 Så det vil vende tilbage alle de sorterede bøger. 530 00:29:05,870 --> 00:29:07,940 Dette er igen i databasen. 531 00:29:07,940 --> 00:29:09,570 Så det er en metode til modellen. 532 00:29:09,570 --> 00:29:12,440 Du så denne metode er skabt i modellen. 533 00:29:12,440 --> 00:29:16,170 Nu er det bare at indlæse alle de bøger og sætte dette i en variabel, 534 00:29:16,170 --> 00:29:17,490 kan ses ved visningen. 535 00:29:17,490 --> 00:29:20,680 >> Fordi du ikke kan, i midten af din HTML-kode, kan du ikke ringe 536 00:29:20,680 --> 00:29:23,940 noget direkte fra modellen, fordi to grunde. 537 00:29:23,940 --> 00:29:28,260 Først, af sikkerhedsmæssige årsager, fordi det er ikke rigtig interessant at være 538 00:29:28,260 --> 00:29:32,920 lastning information direkte inde hver HTML, der er i databasen. 539 00:29:32,920 --> 00:29:36,030 Og for det andet, for at holde din kode virkelig organiseret. 540 00:29:36,030 --> 00:29:38,800 Så adskille nøjagtigt forskellige dele. 541 00:29:38,800 --> 00:29:42,830 Så BookLog.sorted_all, dette i database, og det kommer til at sætte i 542 00:29:42,830 --> 00:29:44,290 en variabel @ bøger. 543 00:29:44,290 --> 00:29:47,695 Og nu denne variabel er tilgængelig i din HTML-kode. 544 00:29:47,695 --> 00:29:54,610 Så du kan bare sætte alle de bøger, der ligesom vi gjorde, lige her. 545 00:29:54,610 --> 00:29:57,760 Dette er variabel. 546 00:29:57,760 --> 00:30:04,730 >> Og besøg respond_to gøre | format |, dette er blot en slags Ruby syntaks for 547 00:30:04,730 --> 00:30:08,140 hvis brugeren beder mig om HTML-kode, jeg har tænkt mig at 548 00:30:08,140 --> 00:30:09,340 reagere med HTML-kode. 549 00:30:09,340 --> 00:30:15,500 Hvis brugeren spørger mig med JSON kode, hvilket er noget, web apps bruger 550 00:30:15,500 --> 00:30:20,780 at kommunikere indbyrdes, de plejer at bruge JSON eller en anden 551 00:30:20,780 --> 00:30:23,120 slags ting. 552 00:30:23,120 --> 00:30:25,850 Så det bare reagerer ved hjælp af de to forskellige formater. 553 00:30:25,850 --> 00:30:31,720 Men for en almindelig bruger dette behøver ikke at være her. 554 00:30:31,720 --> 00:30:34,060 Du ville bare reagere med HTML, og det er fint. 555 00:30:34,060 --> 00:30:36,220 Så ikke rigtig bange for, at meget om dette. 556 00:30:36,220 --> 00:30:39,510 Dette er den eneste linje kode i vores kontrol, som det er læsning fra HTML 557 00:30:39,510 --> 00:30:42,630 database, i færd med noget, der er tilgængelige ved udsigten. 558 00:30:42,630 --> 00:30:49,870 >> Og så nyt, så her Jeg skaber bøger. 559 00:30:49,870 --> 00:30:55,490 Men for at skabe bøger, jeg har brug for en studerende fordi jeg har brug for at kende den studerende 560 00:30:55,490 --> 00:30:58,490 hvis bøger denne tilhører, til højre. 561 00:30:58,490 --> 00:31:00,780 Så @ elev = Student. 562 00:31:00,780 --> 00:31:06,500 Studerende, igen, vi starter med et stort S er den model studerende. 563 00:31:06,500 --> 00:31:09,380 OK, så det er den model student, det er den model bog log. 564 00:31:09,380 --> 00:31:15,150 Student.find, så jeg har tænkt mig at finde en student ved hjælp af parametrene ID. 565 00:31:15,150 --> 00:31:19,160 params.id er dette bare få mig værdien dette id, der blev vedtaget - 566 00:31:19,160 --> 00:31:23,410 og URL'en. 567 00:31:23,410 --> 00:31:25,440 >> Bare kommer til at søge efter denne elev. 568 00:31:25,440 --> 00:31:28,420 Og først, vi kommer til at kontrollere hvis den studerende har nogle sange 569 00:31:28,420 --> 00:31:29,910 og blah, blah, blah. 570 00:31:29,910 --> 00:31:35,570 Og dette allerede håndterer tilfældet, når eleven 571 00:31:35,570 --> 00:31:38,340 ikke eksisterer, for eksempel. 572 00:31:38,340 --> 00:31:44,450 Og så, ellers, vi bare reagere til de samme ting ved hjælp af HTML. 573 00:31:44,450 --> 00:31:47,570 Og så kan vi lade brugeren skabe deres sange. 574 00:31:47,570 --> 00:31:49,320 Så dette er nyt. 575 00:31:49,320 --> 00:31:52,580 Nye er normalt bruges til, så lad brugeren skabe noget. 576 00:31:52,580 --> 00:31:56,440 Og så er der skabe handling der er normalt bruges til - 577 00:31:56,440 --> 00:31:59,040 faktisk lægge sangene i databasen eller noget lignende. 578 00:31:59,040 --> 00:32:01,770 Men når du begynder at bruge Rails, disse ting vil være 579 00:32:01,770 --> 00:32:05,110 meget mere klart. 580 00:32:05,110 --> 00:32:07,910 OK, afkøles. 581 00:32:07,910 --> 00:32:09,715 Eventuelle spørgsmål, så vidt? 582 00:32:09,715 --> 00:32:15,240 Er det fornuftigt med controllere, modeller, marker - 583 00:32:15,240 --> 00:32:17,860 ja? 584 00:32:17,860 --> 00:32:20,980 >> Igen i din Rails ansøgning - 585 00:32:20,980 --> 00:32:24,700 så alle, der kan findes her. 586 00:32:24,700 --> 00:32:30,430 Så du har app, controllere, der er alle mine controllere. 587 00:32:30,430 --> 00:32:32,880 Så for eksempel bøger kontrollere. 588 00:32:32,880 --> 00:32:35,490 Det er den, vi lige har set. 589 00:32:35,490 --> 00:32:36,400 Og så synspunkter. 590 00:32:36,400 --> 00:32:39,750 Og hver regulator har en tilknyttede visning, right? 591 00:32:39,750 --> 00:32:43,750 Så automatisk, når du kalder dette indeks her, for eksempel, eller når du 592 00:32:43,750 --> 00:32:49,930 kalde dette bøger nye, så det synspunkt, bøger, er ny kommer til at hedde. 593 00:32:49,930 --> 00:32:53,300 >> Så Rails gør alt automatisk for dig. 594 00:32:53,300 --> 00:32:59,420 Så hver controller har en tilhørende se og alle modellerne - 595 00:32:59,420 --> 00:33:01,970 her har jeg en, to, tre, fire, fem modeller. 596 00:33:01,970 --> 00:33:05,800 Men det er en student model, så dem er de variabler, at alle 597 00:33:05,800 --> 00:33:08,620 studerende har - lokalisering, fødselsdato. 598 00:33:08,620 --> 00:33:11,270 Studerende er en lille smule mere kompliceret, fordi hver elev har 599 00:33:11,270 --> 00:33:15,400 mere anden metode forbundet til det. 600 00:33:15,400 --> 00:33:18,770 Men dette er blot håndtering af tabel, der havde alle de 601 00:33:18,770 --> 00:33:21,980 studerende i databasen. 602 00:33:21,980 --> 00:33:24,300 >> Og, OK, installere Rails. 603 00:33:24,300 --> 00:33:27,710 Installation af Rails, at være ærlig, er ikke den enkleste ting. 604 00:33:27,710 --> 00:33:32,980 Men når du kommer forbi alt, det er meget, meget let. 605 00:33:32,980 --> 00:33:38,810 Så installere Rails, du bare gå til hjemmeside, rubyandrails.org / download 606 00:33:38,810 --> 00:33:41,510 og følge deres anvisninger der. 607 00:33:41,510 --> 00:33:42,700 Downloade alt. 608 00:33:42,700 --> 00:33:46,600 Og du kan gøre det enten i Appliance, i CS50 Appliance, om 609 00:33:46,600 --> 00:33:51,120 Windows på Mac, eller ethvert operativsystem system af din valg. 610 00:33:51,120 --> 00:33:52,460 Ruby on Rails kører på alt. 611 00:33:52,460 --> 00:33:56,680 >> Odds er du allerede har Ruby installeret hvis du har en Mac eller - 612 00:33:56,680 --> 00:33:58,130 i de apparater, jeg tror Ruby er - 613 00:33:58,130 --> 00:34:00,940 Jeg er ikke sikker. 614 00:34:00,940 --> 00:34:02,440 Og så skal du bare have denne installeret. 615 00:34:02,440 --> 00:34:07,190 Og hvis du ønsker at oprette en ny webapplikation, du bare 616 00:34:07,190 --> 00:34:10,270 gøre Rails, nye, blog. 617 00:34:10,270 --> 00:34:12,429 Rails, nye - 618 00:34:12,429 --> 00:34:13,310 Jeg ved det ikke - 619 00:34:13,310 --> 00:34:15,050 navnet på din hjemmeside. 620 00:34:15,050 --> 00:34:16,380 Og det er så simpelt. 621 00:34:16,380 --> 00:34:19,060 >> Det kommer til at skabe alle dem filer, jeg bare viste dig. 622 00:34:19,060 --> 00:34:22,730 Men modellen, udsigten, og controller vil ikke være 623 00:34:22,730 --> 00:34:24,330 befolket endnu. 624 00:34:24,330 --> 00:34:28,710 Du er bare nødt til at gå der og befolke disse tre mapper. 625 00:34:28,710 --> 00:34:32,840 Så odds er, du ønsker at skabe en model, for eksempel gennemføre en 626 00:34:32,840 --> 00:34:33,780 model først. 627 00:34:33,780 --> 00:34:40,440 Så igen, altid forsøger at bide mindre bits af et problem på et tidspunkt. 628 00:34:40,440 --> 00:34:42,659 >> Og så lad os sige, at skabe en model for dine brugere. 629 00:34:42,659 --> 00:34:44,370 Det er den første ting hvis du har brugere. 630 00:34:44,370 --> 00:34:48,440 Så jeg ønsker at skabe en model ligesom vi viste her. 631 00:34:48,440 --> 00:34:58,470 Rails, generere, model, bruger og derefter emails snor - vi har det her. 632 00:34:58,470 --> 00:35:01,200 Og bare oprette denne model, ja. 633 00:35:01,200 --> 00:35:05,030 Rails genererer model Bruger email: string password: streng. 634 00:35:05,030 --> 00:35:09,650 >> Og så skal du oprette en controller der beskæftiger sig med brugeren. 635 00:35:09,650 --> 00:35:12,790 Og du kan oprette nye brugere og gøre den slags ting. 636 00:35:12,790 --> 00:35:18,280 Og så kan du gå videre til at skabe resten af ​​dit websted. 637 00:35:18,280 --> 00:35:22,470 Cool, spørgsmål? 638 00:35:22,470 --> 00:35:23,230 Ja. 639 00:35:23,230 --> 00:35:24,480 >> PUBLIKUM: [uhørligt] 640 00:35:24,480 --> 00:35:27,430 641 00:35:27,430 --> 00:35:29,910 >> GABRIEL GUIMARAES: Ja, ja, du helt sikkert nødt til at gå ind i visningen. 642 00:35:29,910 --> 00:35:31,290 Det er et meget godt spørgsmål. 643 00:35:31,290 --> 00:35:36,410 Så visningen er hvad der rent faktisk indeholder dit HTML. 644 00:35:36,410 --> 00:35:39,240 Så det er, hvad brugerne kommer til at se. 645 00:35:39,240 --> 00:35:46,690 Igen her er dette en eksempel på en visning. 646 00:35:46,690 --> 00:35:52,040 Det har HTML-kode og Ruby kode på samme tid. 647 00:35:52,040 --> 00:35:56,010 Så Ruby kode er der for at sætte tingene fra databasen, for eksempel, 648 00:35:56,010 --> 00:35:59,150 der blev indlæst i controlleren. 649 00:35:59,150 --> 00:36:04,240 Så variabel @ bøger, for eksempel, har alle de bøger, og tabellen 650 00:36:04,240 --> 00:36:05,340 bøger på databasen. 651 00:36:05,340 --> 00:36:08,680 Vi sørgede for, at det havde i styringen. 652 00:36:08,680 --> 00:36:10,250 >> Og udsigten - 653 00:36:10,250 --> 00:36:15,900 hver af de sider fra din hjemmeside er kommer til at have en tilknyttet visning. 654 00:36:15,900 --> 00:36:21,762 Så hvis du går til startsiden, den allerførste side, harvard2017.com. 655 00:36:21,762 --> 00:36:23,490 Det viser én side. 656 00:36:23,490 --> 00:36:26,760 Og så skal du gå til skråstreg profil. 657 00:36:26,760 --> 00:36:30,150 Det kommer til at gå til en controller det er en profil controller. 658 00:36:30,150 --> 00:36:34,620 Og profilen controller går for at give dig den profil visning. 659 00:36:34,620 --> 00:36:37,590 Og profilbilledet kommer til at se noget som dette, men det kommer til at 660 00:36:37,590 --> 00:36:41,910 har oplysninger om brugeren, og ikke om de bøger. 661 00:36:41,910 --> 00:36:46,840 >> Så det er HTML-kode og CSS, og dem, ting, som en bruger ser 662 00:36:46,840 --> 00:36:49,680 med Ruby kode - 663 00:36:49,680 --> 00:36:52,505 der faktisk udskriver ting fra databasen. 664 00:36:52,505 --> 00:36:54,520 Er det mere klart? 665 00:36:54,520 --> 00:36:55,080 Jeg håber. 666 00:36:55,080 --> 00:36:58,066 >> PUBLIKUM: HTML-kode bruges til at faktisk gøre hjemmesiden, at den 667 00:36:58,066 --> 00:37:02,470 brugeren ser, men Ruby kode er hvad gør hjemmesiden arbejde? 668 00:37:02,470 --> 00:37:06,500 >> GABRIEL GUIMARAES: The Ruby kode bliver konverteret til HTML. 669 00:37:06,500 --> 00:37:09,420 Så hvad får brugeren er kun HTML, OK? 670 00:37:09,420 --> 00:37:10,900 Det er kun HTML. 671 00:37:10,900 --> 00:37:18,740 Denne book.title kommer til at konvertere til værdien af ​​book.title i HTML, OK. 672 00:37:18,740 --> 00:37:23,080 Så det er alt i serveren, og så dette afhænger af, hvad bøger er der 673 00:37:23,080 --> 00:37:24,410 i serveren lige nu. 674 00:37:24,410 --> 00:37:32,930 Men hvad serveren ville straks forstand er kun HTML-kode, OK. 675 00:37:32,930 --> 00:37:36,720 >> Men udsigten bare giver layoutet af hvad HTML skulle ligne 676 00:37:36,720 --> 00:37:39,530 og hvilke variabler vil være. 677 00:37:39,530 --> 00:37:42,170 Denne form af en udskrift, OK. 678 00:37:42,170 --> 00:37:44,360 Disse ting er der dybest set udskrifter. 679 00:37:44,360 --> 00:37:47,430 De kommer til at udskrive variabler, OK. 680 00:37:47,430 --> 00:37:49,850 Så hvad er kun HTML, der - 681 00:37:49,850 --> 00:37:51,390 forfatter, titel, beskrivelse. 682 00:37:51,390 --> 00:37:53,540 Det er statisk indhold. 683 00:37:53,540 --> 00:37:54,520 Det kommer ikke til at ændre. 684 00:37:54,520 --> 00:37:56,700 Det er blot almindelig HTML-kode. 685 00:37:56,700 --> 00:37:59,080 Det er de udskrifter for variabler - 686 00:37:59,080 --> 00:38:00,330 ting, der er afhængige af. 687 00:38:00,330 --> 00:38:02,350 688 00:38:02,350 --> 00:38:03,600 Cool, flere spørgsmål? 689 00:38:03,600 --> 00:38:12,120 690 00:38:12,120 --> 00:38:12,600 Godt? 691 00:38:12,600 --> 00:38:13,080 Ja. 692 00:38:13,080 --> 00:38:15,720 >> PUBLIKUM: Jeg tror, ​​du lavede alle redigering i en anden tekst 693 00:38:15,720 --> 00:38:16,920 redigering program. 694 00:38:16,920 --> 00:38:19,520 Skal vi også downloade det? 695 00:38:19,520 --> 00:38:24,250 >> GABRIEL GUIMARAES: Ja, jeg kan lide det teksteditor kaldet TextMate. 696 00:38:24,250 --> 00:38:24,990 Og det er virkelig godt. 697 00:38:24,990 --> 00:38:26,980 Det er velegnet til Ruby. 698 00:38:26,980 --> 00:38:29,270 Det farver tingene meget pænt. 699 00:38:29,270 --> 00:38:34,770 Så TextMate, T-E-X-T. Jeg har tænkt mig at sætte det, holde på - 700 00:38:34,770 --> 00:38:42,880 701 00:38:42,880 --> 00:38:45,720 >> Jeg mener du kan bruge gedit eller noget, du ønsker. 702 00:38:45,720 --> 00:38:49,970 Men dette er specifikt for Mac, og dette er virkelig nydelige, fordi det sætter alle 703 00:38:49,970 --> 00:38:51,000 dine filer dernede. 704 00:38:51,000 --> 00:38:53,620 Og i Ruby on Rails, du har brug for at skifte filer en masse. 705 00:38:53,620 --> 00:38:55,890 Så det er mange, mange filer blot gå fra den ene fil, springe til 706 00:38:55,890 --> 00:38:57,120 ene eller den anden fil eller. 707 00:38:57,120 --> 00:39:02,000 Så TextMate er en meget god, men der er masser derude. 708 00:39:02,000 --> 00:39:03,250 Flere spørgsmål? 709 00:39:03,250 --> 00:39:08,680 710 00:39:08,680 --> 00:39:09,870 OK, ja? 711 00:39:09,870 --> 00:39:12,825 >> PUBLIKUM: Er der en mobil udvikling gennem Ruby on Rails? 712 00:39:12,825 --> 00:39:15,640 713 00:39:15,640 --> 00:39:17,050 >> GABRIEL GUIMARAES: Jeg har hørt af tingene. 714 00:39:17,050 --> 00:39:19,550 Jeg har ikke brugt dem. 715 00:39:19,550 --> 00:39:21,570 Du kunne forske mere om det. 716 00:39:21,570 --> 00:39:24,740 Jeg er ikke sikker på, om der er nogen god ting derude. 717 00:39:24,740 --> 00:39:29,980 718 00:39:29,980 --> 00:39:31,030 OK, ja? 719 00:39:31,030 --> 00:39:32,280 >> PUBLIKUM: [uhørligt] 720 00:39:32,280 --> 00:39:38,340 721 00:39:38,340 --> 00:39:40,550 >> GABRIEL Guimarães: Ikke Rails, sandsynligvis Ruby array. 722 00:39:40,550 --> 00:39:44,270 723 00:39:44,270 --> 00:39:49,080 Åbn en terminal vindue og type, "Ruby". 724 00:39:49,080 --> 00:39:52,030 Ja, sandsynligvis, og så bare nødt til at installere Rails. 725 00:39:52,030 --> 00:39:57,050 Men hvis du kommer til at installere den nye Rails 4.0, som jeg stærkt anbefale, 726 00:39:57,050 --> 00:40:02,870 du skal hente Ruby 2.0. 727 00:40:02,870 --> 00:40:04,530 Det er den nye også. 728 00:40:04,530 --> 00:40:09,530 Og de nye Rails 4.0 har noget virkelig cool at 729 00:40:09,530 --> 00:40:11,260 det gør at aktiverne. 730 00:40:11,260 --> 00:40:12,810 Det håndterer aktiver. 731 00:40:12,810 --> 00:40:18,860 Aktiver igen er billeder, CSS-filer, og JavaScript-filer. 732 00:40:18,860 --> 00:40:24,060 Så en rigtig pæn ting som Ruby on Rails gør for dig, er alle dem, CSS 733 00:40:24,060 --> 00:40:26,980 filer, som du har, og alt - 734 00:40:26,980 --> 00:40:32,420 det bare bundter alt op i en kæmpe fil, uden mellemrum eller noget, 735 00:40:32,420 --> 00:40:40,120 at minimere den tid brugeren skal hente denne kode fra din server. 736 00:40:40,120 --> 00:40:47,780 >> Så når du ser på din computer, er det nødt til som 15 CSS-filer. 737 00:40:47,780 --> 00:40:49,520 Eller mange, mange forskellige CSS-filer. 738 00:40:49,520 --> 00:40:54,890 Men i slutningen af ​​dagen, hvad Rails automatisk betyder for dig, er det sætter 739 00:40:54,890 --> 00:41:00,760 det hele sammen til én stor fil således at det minimerer anmodningen tid. 740 00:41:00,760 --> 00:41:02,630 Det er virkelig cool. 741 00:41:02,630 --> 00:41:02,940 Ja? 742 00:41:02,940 --> 00:41:04,190 >> PUBLIKUM: [uhørligt] 743 00:41:04,190 --> 00:41:13,910 744 00:41:13,910 --> 00:41:14,440 >> GABRIEL GUIMARAES: Præcis. 745 00:41:14,440 --> 00:41:16,230 Så Google Maps integration. 746 00:41:16,230 --> 00:41:20,200 Det er en JavaScript-API fra Google. 747 00:41:20,200 --> 00:41:23,750 Så jeg gik lige til Google website. 748 00:41:23,750 --> 00:41:29,950 De har denne Google Maps API og jeg downloadet koden og integreret det 749 00:41:29,950 --> 00:41:31,610 ind i mit synspunkt. 750 00:41:31,610 --> 00:41:35,490 Så hvad jeg havde brug for at gøre der er jeg havde brug for at få den 751 00:41:35,490 --> 00:41:37,310 steder fra databasen. 752 00:41:37,310 --> 00:41:38,990 Det blev gjort i controlleren. 753 00:41:38,990 --> 00:41:40,950 Så jeg gik til controller - 754 00:41:40,950 --> 00:41:42,350 hvor er controlleren. 755 00:41:42,350 --> 00:41:44,330 Controlleren lignede dette. 756 00:41:44,330 --> 00:41:48,660 Fik alle de steder i studerende sætte alt dette ind i en stor 757 00:41:48,660 --> 00:41:52,060 variabel, en stor liste, der har alle de placeringer. 758 00:41:52,060 --> 00:41:55,340 >> Og i visningen, fordi JavaScript API er noget i 759 00:41:55,340 --> 00:41:55,800 se, ikke? 760 00:41:55,800 --> 00:42:00,440 Fordi JavaScript kører i din HTML kode, går det til at blive sendt til 761 00:42:00,440 --> 00:42:01,710 brugerens maskine. 762 00:42:01,710 --> 00:42:09,310 Og i visningen, jeg læsset alt dette information i Google API. 763 00:42:09,310 --> 00:42:12,080 Og det gjorde alt dette for mig, som er virkelig cool. 764 00:42:12,080 --> 00:42:16,240 Men hvis du ønsker at bruge ting i back-end, og det er ligesom et bibliotek, for 765 00:42:16,240 --> 00:42:18,720 eksempel, igen - 766 00:42:18,720 --> 00:42:20,140 integrationen med Facebook. 767 00:42:20,140 --> 00:42:24,060 Det er noget, mange, mange, mange apps bruger i dag. 768 00:42:24,060 --> 00:42:27,300 >> Så har din integration med Facebook fordi det er så meget nemmere at bare 769 00:42:27,300 --> 00:42:30,450 logge ind med Facebook end at skabe en konto og blah, blah, blah. 770 00:42:30,450 --> 00:42:35,120 Så kan du bare bruge en perle og det er så simpelt som at gå til din perle-fil. 771 00:42:35,120 --> 00:42:39,350 Gem fil er en fil kaldet perle fil i kilde mappe på din Ruby on 772 00:42:39,350 --> 00:42:40,370 Rails projekt. 773 00:42:40,370 --> 00:42:43,700 Bare gå der og tilføje nye perle. 774 00:42:43,700 --> 00:42:45,300 Og du slå det op på Google. 775 00:42:45,300 --> 00:42:46,520 Der er mange, mange, mange perler. 776 00:42:46,520 --> 00:42:51,070 Der er én, der specifikt gør dette for Facebook integration. 777 00:42:51,070 --> 00:42:54,660 Jeg er ikke sikker på, hvad navnet på den. 778 00:42:54,660 --> 00:42:56,680 Bare google det, og du er kommer til at finde den. 779 00:42:56,680 --> 00:42:57,930 OK, flere spørgsmål? 780 00:42:57,930 --> 00:43:01,110 781 00:43:01,110 --> 00:43:03,280 Awesome, tak fordi du kom. 782 00:43:03,280 --> 00:43:09,227