GABRIEL GUIMARAES: Tas ir CS50. Laipni lūdzam Amazing Web Apps ar Ruby on Rails. Tātad, ikvienam, kas interesējas par web izstrādes un pieņemšanas mājas lapas, web pieteikumi, Ruby on Rails ir šī pārsteidzošs instruments, lai čivināt, GitHub, Groupon, un visa veida patiešām jauki, un liels, tīmekļa lietojumprogrammas ir lietot pēdējos gados. Un tas ir ļoti, ļoti foršs iezīme, foršs līdzeklis, jo tas ir jauns. Tātad tas ir visas jaunās spēcīgs tehnoloģijas iekļauta vienā sistēma, kas palīdz tikt galā ar visu veidu pārsteidzošu lietu. Bet to, kas ir pamats? Tāpēc sistēma ir pamatā kaut kas rada - kad sākat mājas lapā, ja jūs sākās no nulles, piemēram, atverot gedit tur, un jūs vēlaties, lai kodu visiem Jūsu HTML un koda visu savu PHP, visas jūsu CSS, viss no nulles - tas ir tikai būs daudz darba. Un sistēma burtiski dod jums puse mājas lapā darīts jau. Tātad jums sākt ar pusi mājas lapā tas ir viss, kas tur jums. Piemēram, datu bāzes savienojumi, un visas veidu lietas, kas jums ir jāuztraucas par to, ja jūs darāt to no nulles, Jums nav jāuztraucas par tiem, zema līmeņa informāciju. Bet šodien mēs esam gatavojas eksportēt vienu no tīmekļa vietnes, kas pirmkursnieks no klase 2017, iespējams, iepazinies. Tāpēc šī mājas lapa ir mājas lapa, kas man darīja mūsu klasē pa vasaru. Tas bija mājas lapa, kurā studenti klase 2017 var pieteikties un mijiedarboties ar otru. Un tad tas ir karte - visi, kur cilvēki ir. Un mums bija grāmatu spēli, dziesmas spēle kur mēs redzējām tautas dziesmas un cilvēku grāmatas. Ko viņi patīk lasīt, ko viņi vēlētos klausīties. Un visvairāk interesanti daļa no tā ir ka tas burtiski aizveda mani trīs stundas kodēt visu to. Jo, ja man bija darīt visu, sākot no scratch, piemēram, atverot gedit, tas , iespējams, ir veikušas man 20, 30 stundas. Bet ar Ruby on Rails, jo viss jau bija izveidots par mani, tas tikai aizveda mani trīs vai četras stundas, vai kaut kas tamlīdzīgs. Tātad, kas ir Ruby on Rails. Ruby on Rails, atkal kā mēs jau teica, ir pamats. Tas ir priekšstatu par sistēmu. Tātad jūs gatavojas sākt veidot house, jums jau ir puse no house darīts. Tas ir pamats. Un Ruby on Rails ir tieši tāpat. Un jums vajadzētu domāt par to, kā jūs sākat mājas lapā, jūs sākat savu web pieteikums, mums jau ir puse no tā darīts tur. Bet vispirms, kas ir Ruby? Ruby on Rails izmanto modeļa skatu kontrolieris, kas ir paradigma, kas ir patiešām interesanti - un visiem pieteikumiem mūsdienās izmantot kaut ko līdzīgu, ka. Šī ideja atdalīt lietas vērā trīs daļas, modelis, skats, un kontrolieris. Mēs runāsim nedaudz vairāk par to vēlāk. Pirmais, kas ir Ruby? Tāpēc tas ir Ruby. Un tas ir simbols valodā sauc Ruby. Ruby ir viena no newish interpretēta valodās, lai skriptu. Tā ir valoda, tas nav apkopoti tāpat kā C. Tas ir apkopota par darboties. Tātad, tas ir labi, jo, tāpat kā PHP, Piemēram, ir arī interpretēt, ir nav apkopoti. Tas ir labi, jo tās portable. Tātad, jūs vienkārši nodot savu kodu viena mašīna uz citu. No Linux mašīna, uz Windows mašīna, uz Mac vai Apple mašīna, vai kaut kā tā. Un jums nav jāuztraucas par informāciju par katra specifisko operētājsistēmas. Tas dodas uz darbu visur. Un Ruby ir valoda, kas - jūs puiši, iespējams, atcerēties. Cilvēki izmanto hash funkciju īsteno C par hash tabulu pagājušajā nedēļā un bija visādas segmentācijas kļūdas. Un tad lietas neuztraucoties par to, vai ka virkne es tur, stīgu i šeit, faktiski tika mazajiem burtiem vai lielos, vai tie ir satraucoša veida zema līmeņa informāciju. Nu Ruby, ja jūs vēlaties, lai īstenotu hash tabulu, tas ir, kā jūs tieši izveidot hash tabulu. Jūs sakāt, vārdnīcu, tas ir vārds manu mainīgo, = "Hash.new". Un tad vārdnīca ["foo"], un, kad es esmu pievienojot foo manu hash tabulu, es esmu vienkārši sakot, foo ir tur. Un tad, ja es gribēju, lai pārbaudītu, vai foo bija tur, es tikai saku, ja vārdnīca ["foo"] == true atgriešanās taisnība. Paga, un tas ir jūsu hash tabulu. Tas ir īstenošana hash tabulas Ruby. Tāpēc ikviens vēlējās tie varētu būt izmanto kaut ko līdzīgu Ruby par pēdējo nedēļas PSET, vai ne? Mums ir visu veidu iemeslu vēlas lietot valodu, piemēram, Ruby. Ruby ir dārgakmeņi. Gem ir nosaukums veida Bibliotēkas Ruby. Tātad visu veidu interesantas iezīmes ka jums var būt, piemēram, ja es vēlas integrēt savu pieteikumu. Ka Harvard 2017 pieteikumu tika integrēta Facebook. Lai jūs varētu pieteikties, izmantojot Facebook, lai app. Tātad, ja jūs gatavojas to darīt, jums nav jāuztraucas par sūtīšanu kādu HTTP pieprasījums Facebook, un gaida par atbildi, un piespiežot reakciju, un blah, blah, blah. Jūs vienkārši lejupielādēt gem, ka dara visu, lai jums. Un tad jums nav nepieciešams jāuztraucas par visu, kas. Un tad daudz palīdzēt online, protams. Ir daudz, daudz, daudz portālu, kas gatavojas, lai palīdzētu jums abiem ar Ruby un Rails. Un tas ir daudz jautrības, lai kodu. Tieši tāpēc, ka jūs varētu pārtraukt satraucoša par tiem nav tik jautri problēmām. Piemēram, ja kaut kas ir mazie vai lielie burti, un tad kāpēc tas ir sniedzot jums segmentāciju vaina, un Jūs tiešām var nirt ļoti interesanti sīkumi. Nodoties tiešām atdzist problēmām. Tāpēc Ruby ir tāpat kā ar C sajūtu. Tāpēc tas nebūs, ka liels lēkt faktiski. Tā liek, tas ir mūsu drukas app Ruby. Es domāju, ka jūs varētu izmantot drukāt arī, bet liek ir tas, ko visi izmanto. Tik vienkārši liek "Hello World". Jūs varētu, vai jūs nevarētu būt iekavas aptverošs "Hello World" tur. Jūs varat izvēlēties, vai vai nelietot ka. Un tad x = "1". Kamēr cilpa izskatās diezgan līdzīgi. Tas vienkārši ir mazāk sintakse. Tas ir sava veida tīrāku mazliet. Un tad, ja x> 25 liek "Big!" un vēl liek "mazs ...". Un tas ir sava veida C šajā ziņā. Tātad, ja paskatās, ka jūs varat pieeja, iespējams saprast viss, kas notiek. Bet tas ir jaudīgāks. Spēcīgāks, jo vairāk nekā, ka, To var darīt lietas nav, ka - sava veida hackage mazliet. C, jūs nevar darīt vienkārši darīt ar vienu līniju. Piemēram, liek: "Es esmu # {x}". Tas ir tikai sintakse ielieciet vērtības X šeit, un nedrukāt raksturs x. C jums bija darīt procentiem d, un tad safasēti mainīgo x pēc Komats šeit, vai kaut kas tamlīdzīgs. Un Ruby tur ir saīsinājums tikai par darot to. Un liek tas, ja x> 3, lai jūs varētu nodot, ja visi vienā rindā. Un tad sarakstu. Saraksti C, piemēram, masīvs, jums ir izsekot, cik liels jūsu masīvs ir vai citādi jūs saņemsiet segmentāciju vaina. Jūsu masīvs ir tikai viena veida. Tātad, tas ir, vai nu masīvs maksas vai masīvs veseli skaitļi. Šajā gadījumā, es izveidots sarakstu šeit tas ir masīvs, kas ir pirmais elements ir virkne, Jānis, un pēc tam četri, divi - tie ir veseli skaitļi. Un tad es vienkārši pievienojiet, sarakstu, Left Angle Bracket, pa kreisi Leņķis Bracket, trīs. Tas nozīmē, ka tikai pievienot kaut kas manā sarakstā. Tātad, tas ir sava veida vairāk interesanti, jo ja jūs vēlaties, lai izmantotu to kā tikai vienkāršs saraksts ar veseliem skaitļiem, jūs varētu pilnīgi. Tas ir pilnīgi naudas sodu. Vienkārši ielieciet veseli skaitļi tur. Bet, ja jūs vēlētos darīt kaut ko, kas ir vairāk pārliecinoši, ka ir citi lietas, kas ir - Es nezinu, visu veidu sarakstus tur, vai citi objekti, kas ir vairāk interesanti, jūs varat pilnībā darīt. Tas ir pilnīgi naudas sodu. Un tad, ja jūs vēlaties atkārtot, izmantojot sarakstu, jūs varētu izmantot vairāk C-ish veida pieeju. Tas ir cilpa, lai jūs varētu uzsākt mainīgais, i = "1", vai i = "0". Un tad jums iet, un atkārtot, un saņemt visus elementus. Bet jūs varētu arī izmantot šo vairāk Ruby līdzīgu pieeju. Tas ir tāpat kā list.each. Tas ir tikai saku, atpakaļ mani visi elementi sarakstā. Un darīt ar katru elementu, viņiem piezvanīt elem. Tāpēc tas ir tikai vārds, kas es esmu dodot katram elementam. Un tagad tas ir gatavojas atkārtot visiem elementi, un elem, tas notiek lai būtu tā, ka mēs piekļūt ka atsevišķs faktors. Lai jūs varētu pilnībā stick C pieeju, bet tas darbojas too. Un tas ir tieši tas pats, OK. Un, izņemot to, ka tā ir patiešām, patiešām viegli integrēt Ruby un HTML Tā kā jūs puiši ir ieinteresēti tīmekļa lietojumprogrammas. HTML noteikti ir kaut kas jūs gatavojas izmantot daudz. Un šeit, ja jūs vēlaties, lai Ruby HTML, sāciet šeit, <%. Tas nozīmē, ka šeit Ruby sākas. Un tad%>, veida, piemēram, PHP šajā ziņā. Šeit Ruby beidzas, un tad jūs varat Vienkārši ielieciet savu, ja šeit. Un tad man ir daži mainīgais user.logged_in. Ruby, mēs parasti pievienot tos vai nu nopratināšanas zīme vai izsaukuma zīmi, piemēram, bankas raksturs, tikai veida atšķirt mūsu funkcijām. Bet jūs vienkārši ielieciet ka Jūsu pašu interesēs. Tas nav kaut kas mainās neko funkcionalitāti. Tik vienkārši, lai atgādinātu man, ka tas ir funkcija - un funkcijas Ruby, nevis C, kā es jau teicu, viņiem nav nepieciešams iekavas. Tāpēc, ka pieteicies lieta, kas ir funkcija, kas ir metode. Bet jums nav tieši nepieciešams ielieciet iekavas tur. Tik vienkārši jautā, ja lietotājs ir pieteicies, un, ja lietotājs ir pieteicies, tagad HTML sākas no jauna. Tik laipni, un šeit Es izdrukāt user.name. Un tas arī viss. Tātad tas ir diezgan taisni uz priekšu, kā jūs integrēt Ruby ar savu HTML. Un resursiem, kā jau es teicu, ka ir visu veidu resursu Ruby. Jūs guys var visu apskatīt šo augšu pēc tam jo gan video, un slaidi, gatavojas ir pieejami tiešsaistē. Un tagad pieņemsim nokļūt Rails. Sliedes ir mīlestība. Sliedes - tāpēc Ruby ir viņa valoda. OK, tāpat kā PHP, tāpat kā Python. Tā ir augsta līmeņa valoda, nepatīk C. C ir vidēja, zema līmeņa valoda sajūta, ka Ruby jums nav jāuztraucas par atmiņas pārdali, un norādes, un tie lietas veidu. Bet Rails tas ir programma, kas tika rakstīts Ruby. Un tā izmanto Ruby, lai tas būtu sistēma, lai jūs varētu veidot awesome, tīmekļa lietojumprogrammas. Tātad, jums vispirms jāinstalē Ruby on savu mašīnu, bet lielākā daļa mašīnas jau ir, ka. Un pēc tam instalēt sliedes uz augšu no tā. Mēs ejam runāt par to vēlāk. Un kāpēc sliedes? Tā MVC, tas ir modelis skats kontrolieris mēs runājām par maz bit, padara visu vienkāršāku, jo tas sadala lietas, kas ir konceptuāli atšķirīgas dažādos daļu no jūsu pieteikumu. Mazāk laika pavada uz zema līmeņa problēmām, atkal, un ļoti, ļoti populārs tiesības tagad. Tātad, visiem tiem, kas ir ieinteresēti uzsākšanas skatuves, vai kaut ko kā sākt uzņēmējdarbību, un cilvēki tehnoloģiju tirgū, kas ir sākot savu biznesu tieši tagad tiešām, tiešām fani Ruby on Sliedes, jo tas ir tik ātri. Tātad jūs varat saņemt kaut izveidota un darbojas mazāk nekā vienu dienu, un tas ir patiešām ļoti pārliecinoši arguments izmantot Ruby. Un Sliedes 4,0 - tas ir ļoti svaigs no krāsns tagad. Tā Sliedes 4,0 - Es domāju, ka pirmizrādi bija šā gada martā. Un tas ir patiešām jauki, tas ir viss veidu jaunu, atdzesē iezīmes. Tā Ruby on Rails ir sistēma, kas ir pastāvīgi tiek papildināta, lai visi Jaunās tehnoloģiju. Pirmo reizi es mēģināju izmantot Ruby on Sliedes, man bija šo problēmu, jo es izveidojis savu pirmo tīmekļa lietojumprogrammu, un tas izskatījās tieši tāpat. Tātad tas rada visus šos failus tu, un man nebija ne jausmas, ko - kas tas ir? Tas radīja visus šos failus, un es tikai vēlējās izveidot vienkāršu programmu, vienkāršs HTML tīmekļa vietnē. Un es pat nevarēja darīt neko. Tāpēc man bija mazliet satriekti. Bet tas ir viens no lietām, ka tad, kad jūs saprotu, viss kļūst tik daudz skaidrāks. Tāpēc nav overwhelmed ar pirmo redzes, ko jūs izveidojat sākumā. Tātad, kas notiek, ir sliedes rada visus šos failus. Tātad viens no tiem ir doc, dokumentācija. Db, kas ir saistīti ar datu bāzē. Lib, kas ir bibliotēkas pieteikties. Sabiedrības, skriptu, un dažas lietas. Diezgan daudz visi jūs gatavojas jāuztraucas par to ir app mapes, tur augšā. Tas ir mape, kas satur jūsu pieteikumu. Visiem citiem failiem - daži no tiem ir svarīgi, un jūs dodas, lai uzzinātu par to vēlāk. Bet viņi tikai šeit satur regulējumu. Tātad pirmais stūrakmeņi mājas jūs guys ir ēkas, OK? Bet app mape - tas ir ļoti svarīgs. Un app mapē ir aktīvi. Aktīvi ir diezgan daudz viss tas nāk. Attēlus, piemēram, viss, kas ir static, kas notiek, lai lejupielādēt jūsu mājas lapā. Tātad attēlu, JavaScript, CSS - Šīs lietas veidu, ir aktīvi. Kontrolieri - mēs esam gatavojas runāt vairāk par kādi ir kontrolieri, modeļi, un lauki sekundē. Un palīgi ir funkcijas, kas jums var izmantot visā jūsu kodu lai palīdzētu jums kaut ko darīt. Funkcijas, piemēram pieteicies, lai piemērs - user.loggedin. Tas ir funkcija, kas, iespējams, jums ir izmantot visu daļu no jūsu pieteikumu. Tātad jūs varat likt kaut ko līdzīgu ka jūsu palīgs. Sūtītājiem - tas ir, ja jūs gatavojas nosūtīt e-pastu lietotājiem, jūs vēlaties izmantot mailer. Un modeļus un viedokļi, mēs ejam runāt par to, ka tiesības tagad. Tāpēc modelis viedokli kontrolieris, kas ir galvenais stūrakmens Ruby on Sliedes, un lielākā daļa sistēmas mūsdienās, lai būtu godīgi. Tātad vēlreiz, mēs atsevišķi visi mūsu kodu trīs dažādās daļās. Modelis - modelis pamatā ir datu bāze. Tā rokturi lietas datu bāzē. Lai katrs tabulu datu bāzē ir atbilstošo failu gadījumu modelī. Tātad, tas ir sava veida tabulas saviem lietotājiem. Tātad jūs uzglabātu informāciju, piemēram, lietotāja vārds, to e-pastu, to adresi, savu paroli, un lietām, piemēram, ka. Jūs esat nāksies vienu failu modeli sauc lietotājs rb - rb Ruby. Un tur jums nāksies visu metožu un mainīgo lielumu. Mainīgie gatavojas, lai atbilstu lietotāja vārdu, e-pastu, un viss. Un jūs nāksies metodes. Tas būs kaut kas par - jūs gatavojas rīkoties ar šo informāciju datu bāzē. Izveidot modeli ar Rails, jūs vienkārši izmantot Rails radīt. Un radīt lietas Rails, jums tiešām ir nepieciešams termināli. Tātad, tas ir ļoti terminālis balstīta sistēma. Jūs vienkārši piesakieties uz terminālu, un to sliedes, radīt modeli. Un nosaukums modeļa lietotājs. Un es tikai vēlos, lai ir divi mainīgie, divas kolonnas, jo mana galda. Tātad tas ir e-pasts. E-pasts ir veids virkne. Parole, parole ir arī tipa virkne. Tās ir tikai divas lietas. Tas ir sava veida vienkāršotu lietotāja tabulā. Bet jūs varētu pilnībā likt simts lieta ir tur, ja jūs vēlētos. Un sliedes arī padara to ļoti, ļoti vienkārši, lai visi veidu datu bāzes attiecību. Tāpēc parasti, ja jums ir tabulas ar jūsu datubāzi, viņi nav ļoti neatkarīgas viena no otras. Padomāsim par to. Jūs vēlaties, lai pirkt un pārdot produktus tiešsaistē. Labi, lai jums ir mājas lapā, kur jūs vēlas pirkt un pārdot produktus. Tātad, katram lietotājam ir daudz produktu, kas šis lietotājs ir gatavs pārdot. Un katram lietotājam ir arī daudz darījumus kas pašlaik notiek, vai kaut kā tā. Un darījumi ir ar citu lietotāju. Katrs darījums pieder līdz diviem dažādiem lietotājiem. Lietotājs, kas ir pirkšanas un lietotājs, kas ir pārdošanā. Tātad tie ir tā sauktā datu bāzes attiecības. Un šeit mēs esam tieši šos atslēgvārdus, ir daudz un pieder. Tie ir vissvarīgākie. Un jūs tikai gatavojas teikt, lai Piemēram, šis ir piemērs modelis Hārvardas 2017 mājas lapā. Atkal, studenti šeit - katrs students tīmekļa vietnē, students ir modelis, ir datubāzes tabulā. Katram studentam bija daudz grāmatu, jo jums Varētu teikt, kādi ir jūsu mīļākie grāmatas, labi. Lai katrs grāmatu pieder students leju šeit. Un atribūtu pieejama - tas ir tikai sakot, tie, ir mainīgie. Tie ir mainīgie pieejami no šī modeļa. Un mainīgie ir autors grāmatu, apraksts, žanrs, un grāmatas nosaukums. Tik vienkārši informācija par grāmatu. Un šeit man ir metode, kas vienkārši sakārto visu. Tāpēc definēt un nebeidzas šeit, tas ir tikai sakot, šeit nāk mana metode. Self.sorted_all. Tas ir tikai, dod man viss sakārtots, un tas, kā jūs īstenot šķirošanas algoritms, kas ir diezgan viegli. Bet būtībā, tas ir, kā modelis izskatās, OK. Vai kāds ir jautājumi par šī datubāze lieta? Attiecības? Ir skaidrs? Jā. Mērķauditorija: Vai jūs varat darīt kārtošanas algoritms? GABRIEL GUIMARAES: kārtošanas algoritms, OK. Kad jūs pierast Ruby sintaksi, tas būs skaidrs. Bet būtībā, elems ir Book.all. Tāpēc grāmata ir nosaukums mana modeļa. Kad jūs izveidot modeli, tas nāk ar visu veidu jauku metožu jums. Tāpēc dot.all ir metode, kas atgriež visas grāmatas. Bet atrast, piemēram, būtu meklētu viena grāmata un atgriezties šo grāmatu, vai kaut kā tā. Un tā elems ir viss. Un es esmu tikai sakot elems.sort. Kārtot ir iebūvēts Ruby funkcija. Un, do ab. Tāpēc šis darīt atkal ir - jūs gatavojas kārtot. Bet jūs gatavojas saņemt šis arguments mani. Un argumentu izmanto - tas ir viens no Grūtāk lietas Ruby faktiski, to darīt lieta. Bet tad, kad jūs saprotat to visu nāk ļoti, ļoti intuitīvs. Tātad ab, tas saka vietu turētājiem, ka es esmu gatavojas izmantot - piemēram, mainīgie Es esmu gatavojas izmantot, ir būs saukt un b. Un tie ir grāmatas. Tāpēc kārtošanas nepieciešams, lai salīdzinātu elementi, atcerieties, ka? Tātad, ja jūs kārtot lietas, jums salīdzināt divus elementus. Es esmu gatavojas teikt, ka katru reizi, kad jūs gatavojas, lai salīdzinātu - tā tas ir, es esmu iet kārtot argumentu. Un arguments ir viss No darīt, un šeit, OK? Un šo argumentu, ir tikai stāsta kārtot kā salīdzināt. Kārtošanas varētu strādāt šeit, bet tas varētu salīdzināt ar to noklusējuma salīdzinot algoritmu. Es gribu to salīdzināt ar ļoti specifisku veidā, proti, tad, kad grāmata tika izveidots, kad katra grāmata tika izveidots. Tāpēc es saku, teiksim nosaukums pirmais grāmata ir un nosaukums Otrā grāmata par B, es vēlos kārtot kārtot kaut kas balstīti uz b.created_at šo dīvaini simbols, a.created_at. Un tas dīvaini simbols ir saīsinājums Jo, ja viens ir lielāks nekā citi, atgriežas 1. Ja viens ir vienāds citi, atgriešanās nulle. Ja viens ir mazāks nekā otrkārt, atgriešanās mīnus 1. Tātad tas, ko tas dīvaini simbols ir. Bet tas nav svarīgi. Es domāju, ko es gribu, lai jūs guys, lai saņemtu tagad ir ideja, ka datu bāze - Jums var būt modelis tur. Tātad jums nav jāuztraucas par savienojot un izmantojot SQL, un lietām, piemēram, ka. Tā var arī radīt durvis SQL injekcijas, un visi veida drošības problēmām. Tādā gadījumā, jums nav jāuztraucas par to. Jūs vienkārši izmantot metodes, piemēram, book.all. Un to, ka fona protams, gatavojas ar savu datu bāzi, un tas ir gatavojas izmantot SQL lai iegūtu visas grāmatas. Bet jums nav jāuztraucas par to. Tas ir takeaway, OK? Un, ja jums ir belongs_to paziņojumu piemēram, tas, tas nozīmē, ka kad jums ir grāmatu objektu, jums var redzēt, kāda ir tās studentu. Tātad, kas studentam ir šī grāmata? Tātad, mēs varam vienkārši izmantot book.student, un , kas dod jums to, ko students. Un tas ir patiešām iezīme ir. Labi, tagad skats. Tāpēc modelis ir tas, kas mijiedarbojas ar datu bāzi, vai ne? Skats ir pamatā HTML, un CSS, un daži JavaScript. Un tas ir tas, ko lietotājs faktiski redz. Lietotājs nav gatavojas redzēt savu datu bāzi. Viņš dodas, lai redzētu dažus datus no datubāze iestrādāta skatītāju. Ruby on Rails padara to patiešām vienkārši izdarīt laukus. Pirmkārt, tāpēc, ka tas jau rada to jums, no kastes, izkārtojumu. Izkārtojums ir būtībā kaut kas - ja visas lapas ir logo uz augšu un, es nezinu, kādu izvēlni vai kaut kā tā, ka visas jūsu lapas ir kopīgs, tad jums nav ir nepieciešams, lai izveidotu daudz, daudz, daudz HTML faili, kur visi faili ir, ka pats HTML kodu. Es domāju, ka ir stulbi, jo jūs esat tikko atkārtojot kodu starp dažādiem failiem. Tas noteikti nav laba pieeja. Tā Ruby on Rails rada Šis izkārtojums jums. Un tas ir tikai sakot, visas manas lapas nāksies šo HTML, šo galvu nosaukums šeit, un tie ir stila lapas saite tag. Iespraudiet šeit visu savu CSS. Iespraudiet šeit visu savu JavaScript un daži meta tagus. Tas ir tikai kaut kas, ka viņi darīt automātiski jums. Un tad, beigtu galvu, tagad Šeit sākas ķermeņa. Un tagad tas ir mans faktisko saturu. Tātad, ja es gribēju, lai kaut ko, piemēram, izvēlnes šeit, es varētu nodot to tiesības pār šo vietu, vai kaut kas tamlīdzīgs, lai visas manas lapas kopīgi to. Tāpēc izkārtojums ir dalīta ar visām lapām. Tagad, kad raža šeit vienkārši saka, nav neatkarīgi no tā, kādas lapas tas ir, vienkārši plug saturu, kas lapa šeit, OK? Un tagad tas ir, piemēram, saturu vienas lapas, kas būs iespraust šo ienesīguma paziņojumu automātiski Rails. Bet tas ir izkārtojums dalīta ar visām lapām. Un tas ir piemērs vienas lapas. Un tas ir tieši lapa kas uzskaitītas visas grāmatas. Tātad tas ir pamata HTML tabulu up top. Tātad sarakstā grāmatas, nosaukums, autors, apraksts, žanrs. Un šeit mēs izmantojam, atkal, daži Ruby sintakse, @ books.each, - @ Veida saka, ka jūsu mainīgo ir globāla ziņā. Jo šis mainīgais patiesībā bija deklarēti kontrolieris, kas jūs gatavojas redzēt tieši tagad. Bet tikai par pašsaprotamu, ka tas @ Grāmatas ir mainīgs lielums, kas ir saraksts visas grāmatas. Tātad books.each, darīt, un atkal, tas ir vienkārši sakot, kā jūs vēlaties nosaukt katrs no iterators, lai mēs ne jāuztraucas par četriem, int i blah, blah, blah. Mēs tikai veikt katru no elementus un tos izmantot. Tāpēc šī ir grāmata, un tad tikai drukāt šeit. book.title, book.author, book.description, un blah, blah, blah. Un šeit ir LINK_TO. Tāpēc LINK_TO ir tikai saite tag ka lietotājs var uzklikšķināt uz un dodas uz citu tīmekļa vietni. LINK_TO, liecina, ka konkrēto grāmatu. Tātad, ja lietotājs ir ļoti ieinteresēta šī grāmata, tad viņš var noklikšķināt uz šovu. Vai noklikšķiniet uz rediģēt, ja viņš vēlas rediģēt grāmatu. Vai iznīcināt, ja viņš vēlas, lai izdzēstu book no datu bāzes. Labi, tas, ka ir jēga? Labs. Visbeidzot, kontrolieris. Vārdu sakot, kontrolieris saskarne modeli un skats. Tāpēc modelis ir daļa no jūsu kodu, kas ir datu bāze - katras tabulas datu bāzē ir attiecīgo failu modeli, un tā tālāk. Un kā to modeli un skats sadarboties? Tātad, izmantojot kontroliera. Kas kontrolieris tas ir tas ir modelis kaut kā, piemēram, nodot visas grāmatas iekšpusē mainīgā. Piemēram, šo vienu, @ grāmatām. Un tai ir jābūt globāla ar šo at lieta, jo tas būs piekļūt viedokli. Tas nav gatavojas jāizlieto kontrolieris pati. Un tas tikai palēnina informāciju, skats gatavojas izmantot. Piemēram, kontrolieris pārbaudes ja lietotājs ir tiešsaistē. Un kā tā darīt? Tas faktiski lūdz modeli jo modelis ir informācija par lietotāju. Tā ir lietotāju tabula, grāmatas galds, citām tabulām. Tāpēc kontrolieris jautā, vai lietotājs ir tiešsaistē. Ja lietotājs ir tiešsaistē, kontrolieris rokturi lietas, piemēram, liekot cookie, vai kaut kas tamlīdzīgs, lai zīmogs teikt, ka lietotājs ir tiešsaistē. Nav nepieciešams, lai pieteiktos vēlreiz. Un tas notiek, lai ielādēt mainīgo sauc lietotājs, piemēram, ka skatu var izmantot. Un skats var likt kaut ko šeit, Piemēram, welcome user.name. Tātad, tas ir gatavojas teikt, welcome Jānis, welcome James - kaut kas tamlīdzīgs, vai ne? Tātad visus šos mainīgo izmanto skats gatavojas ielādes kontrolieris un būs velk uz augšu no parauga. Šis ir piemērs kontrolieris. Tātad mums ir, būtībā, katrs - mēs saucam šīs lietas darbības. Tātad indekss ir darbība. Tas ir Ruby funkciju. Tas ir Ruby metode tur. Bet kontrolieris zvaniem šīs lietas darbībām. Un katra darbība ir saistīta ar maršrutam. Tātad, šeit šī ievadīšanas, piemēram, ir get pārskats / grāmatas. Tātad, ja jums iet uz harvard2017.com/books, to, kas notiks, ir tas kods būs saukt. Un tur ir fails - ļaujiet man atvērt šo nekustamo ātri. Tur ir fails ar nosaukumu RAW failu. Tas nav atvēršanu. Tātad tur ir fails, ko sauc par RAW failu kas būtībā sakrīt - Ak, tagad tas ir atvēršanu. Lūk, maršruti. Tātad būtībā sakrīt ar spriedzi, aktivizācijas / new, piemēram, lai kaut kontrolieris. Tātad tur ir šis kontrolieris sauc aktivizēšanas kontrolieris, bet šeit, mums ir grāmatas, piem. Tā sakrīt - grāmatas / new, kontrolierim grāmatas, action jaunu. Tātad, būtībā, ir ļoti vienkāršs lietas. Un šeit, ja jums bija iegūt / grāmatas, slīpsvītra ID grāmatām, slīpsvītra jaunu, jūs gatavojas doties uz, ka Ruby metodi tur lejā. Tātad šeit, ko šis rādītājs dara ir tikai iekraušanas grāmatu žurnālu. Tas ir kaut kas - Es piesakos visas grāmatas žurnālā. Un kārtot to visu. Tā tas notiek, lai atgrieztos visi sakārtoti grāmatas. Tas ir, atkal, datu bāzē. Tāpēc tas ir metode modeli. Redzējāt šo metodi, ir izveidots modeli. Tagad tas ir tikai iekraušanas visas grāmatas un liekot ka mainīgo lielumu, kas var redzēt skatu. Jo jūs nevarat, vidū jūsu HTML kodu, jūs nevarat zvanīt kaut tieši no modeļa, jo divu iemeslu dēļ. Pirmkārt, drošības apsvērumu dēļ, jo tas nav īsti interesanti būt iekraušanas informāciju tieši iekšā Katru HTML, kas ir datu bāzē. Un, otrkārt, lai saglabātu savu kods patiešām organizēti. Tāpēc atsevišķi tieši dažādas daļas. Tātad BookLog.sorted_all, tas datu bāzes un tas ir gatavojas nodot mainīgais @ grāmatas. Un tagad šis mainīgais ir pieejama jūsu HTML kodu. Tātad jūs varat vienkārši ielieciet visas grāmatas tur, tāpat kā mēs to darījām, tieši šeit. Tas ir mainīgs. Un vizītes respond_to darīt | Formāts |, tas ir tikai sava veida Ruby sintakse ja lietotājs jautā man HTML kods, es esmu gatavojas atbildēt ar HTML kodu. Ja lietotājs vēlas mani JSON kodu, kas ir kaut kas web apps izmanto sazināties savā starpā, viņi parasti izmanto JSON vai kādu citu veida lieta. Tātad, tas vienkārši reaģē, izmantojot tos divi dažādi formāti. Bet parastam lietotājam, tas nav nepieciešams, lai būtu šeit. Jūs vienkārši atbildēt ar HTML, un tas ir jauki. Tāpēc nav īsti jāuztraucas, ka daudz par to. Tas ir tikai līnija kods, kas mūsu kontroli, kā tas ir iekraušanu no HTML datubāzē, liekot kaut kas ir pieejama viedokli. Un tad jauns, tāpēc šeit Es veidoju grāmatas. Bet, lai radītu grāmatu, man ir nepieciešams students jo man ir jāzina skolēnam kuras grāmatas tas pieder, labi. Tātad @ studentu = Students. Students, atkal, mēs sākam ar liels S modelis students. Labi, tāpēc šis ir modelis students, Tas ir modelis grāmatu žurnāls. Student.find, tāpēc es esmu gatavojas, lai atrastu students, izmantojot parametru ID. params.id, tas ir tikai iegūt man vērtību Šīs ID, kas tika pieņemts - un URL. Tikai gatavojas meklēt šo studentu. Un pirmkārt, mēs ejam, lai pārbaudītu Ja students ir dažas dziesmas un blah, blah, blah. Un tas jau ir rokturi gadījums, kad students nepastāv, piemēram. Un tad vēl, mēs vienkārši atbildēt uz vienu un to pašu, izmantojot HTML. Un tad mēs varam ļaut lietotājam izveidot savas dziesmas. Tāpēc tas ir jauns. Jaunas parasti izmanto, lai lietotājam izveidot kaut ko. Un tad tur ir radīt darbības , kas ir parasti izmanto, lai - faktiski laisti dziesmas datu bāzē vai kaut kas tamlīdzīgs. Bet tad, kad jūs sākat, izmantojot Rails, šīs lietas būs daudz, daudz vairāk skaidrs. Labi, atdzesē. Visus jautājumus līdz šim? Vai tas ir jēga ar kontrolieriem, modeļi, lauki - yeah? Atkal savā Rails pieteikumu - lai visi, kas var atrast šeit. Tātad jums ir app, kontrolieri, tos ir visas manas kontrolieriem. Tā, piemēram, grāmatas kontroli. Tas ir, mēs tikko redzēju vienu. Un tad viedokli. Un katrs kontrolieris ir saistīta skats, vai ne? Tātad automātiski, kad jūs aicinu šo indekss šeit, piemēram, vai tad, kad nosaukt šo grāmatas jaunu, tad uzskatot, grāmatas, jauna gatavojas saukt. Tāpēc Rails dara visu automātiski jums. Tātad katrs kontrolieris ir saistīta apskatīt un visiem modeļiem - šeit man ir viens, divi, trīs, četri, pieci modeļi. Bet tas ir studenta modelis, lai tie ir mainīgie, ka visi studentiem - lokalizāciju, dzimšanas datums. Studenti ir nedaudz vairāk sarežģīta, jo katram studentam ir atšķirīgs metode saistīts ar to. Bet tas ir tikai apstrādes tabula, kurā bija visi studentu datu bāzē. Un, OK, uzstādot Rails. Uzstādot Rails, ja godīgi, nav vienkāršākā lieta. Bet tad, kad jums pēdējo viss, tas ir ļoti, ļoti viegli. Tā instalēšanas Rails, jūs vienkārši doties uz mājas lapa, rubyandrails.org / lejuplādēt un sekot viņu norādījumiem tur. Lejupielādēt visu. Un jūs varat darīt, ka nu Appliance, ar CS50 Appliance, par Windows, Mac, vai jebkura darbības sistēma, pēc jūsu izvēles. Ruby on Rails iet uz visu. Izredzes ir jums jau ir Ruby uzstādītas Ja jums ir Mac vai - ar ierīcēm es domāju Ruby ir - Es neesmu pārliecināts. Un tad jums vienkārši ir šī uzstādīta. Un, ja jūs vēlaties, lai izveidotu jaunu tīmekļa lietojumprogrammu, jūs vienkārši do sliedes, jaunu, blogu. Sliedes, jauni - Es nezinu - nosaukumu jūsu mājas lapā. Un tas ir tik vienkārši. Tas notiek, lai radītu visiem tiem Failu Es tikko parādīja jums. Bet modelis, skats, un kontrolieris nav būs apdzīvots vēl. Jūs tikai nāksies iet uz turieni un aizpildīt šos trīs mapes. Tātad izredzes ir, jūs vēlaties, lai izveidotu modeli, Piemēram, īstenot vienu modelis pirmo reizi. Tātad vēlreiz, vienmēr mēģina iekost mazāku biti problēmas vienlaicīgi. Un tad teiksim, izveidot paraugs saviem lietotājiem. Kas ir pirmā lieta, ja Jums ir lietotāji. Tad es gribu izveidot modeli tāpat kā mēs parādījām šeit. Sliedes, radīt, modelis, lietotājs, un pēc tam e-pasta string - mums ir, ka šeit. Un vienkārši izveidot šo modeli, jā. Sliedes radīt modelis Lietotāja e-pasta adresi: string parole: string. Un tad jums izveidot kontrolieris , kas nodarbojas ar lietotāju. Un jūs varat izveidot jaunus lietotājus un darīt tās lietas veida. Un tad jūs varat pāriet uz radot pārējo jūsu mājas lapā. Atdzesē, jautājumi? Jā. Mērķauditorija: [dzirdams] GABRIEL GUIMARAES: Jā, jā, jūs noteikti jādodas uz viedokli. Tas ir ļoti labs jautājums. Tāpēc viedoklis ir tas, kas patiesībā satur jūsu HTML. Tātad, tas ir tas, ko lietotāji gatavojas redzēt. Atkal, šeit, tas ir piemērs skatu. Tā ir HTML kodu un Ruby kods, tajā pašā laikā. Tāpēc Ruby kodu tur likt lietas no datu bāzes, piemēram, kas nosūtīja kontrolieris. Tā, ka mainīgā @ grāmatas, piemēram, ir visas grāmatas un tabulu Grāmatas bāzē. Mēs pārliecinājāmies, ka tas bija regulatorā. Un skats - katras lapas pie jūsu mājas lapā ir nāksies vienu saistīto skats. Tātad, ja jums iet uz mājas lapā, Pati pirmā lapa, harvard2017.com. Kas parāda vienu lapu. Un tad doties uz slīpsvītra profilu. Kas notiek, lai iet uz kontrolieri tas profilu kontrolieris. Un profila kontrolieris notiek lai dotu jums profila skatu. Un profila skats skatīsies nedaudz līdzīgs šim, bet tas būs ir informācija par lietotāju, un nevis par grāmatām. Tātad, tas ir HTML kods, un CSS, un tiem, lietas, ko lietotājs redz ar Ruby kodu - kas faktiski drukā lietas no datu bāzes. Ir tas, ka vairāk skaidrs? Es ceru. Mērķauditorija: HTML kods tiek izmantots, lai faktiski padara mājas lapā, ka lietotājs redz, bet Ruby kods ir kas padara mājas darbu? GABRIEL GUIMARAES: Ruby kods izpaužas pārvērš HTML. Tātad, ko lietotājs saņem ir tikai HTML, OK? Tas ir tikai HTML. Šis book.title gatavojas pārejai uz vērtība book.title HTML, OK. Tāpēc tas ir visas serveri, un tā tas ir atkarīgs no tā, ko grāmatas ir tur serverī tiesības tagad. Bet ko serveris būtu nekavējoties jēga ir tikai HTML kods, OK. Bet skats tikai dod izkārtojumu ko HTML gatavojas izskatās un kādi mainīgie būs. Šāda veida izdrukāt, OK. Šīs lietas ir būtībā izdrukas. Viņi gatavojas drukāt mainīgos, OK. Tātad, kas ir tikai HTML, tie - autors, nosaukums, apraksts. Tas ir statisks saturu. Tas nav gatavojas mainīt. Tas ir tikai plain HTML kodu. Tie ir izdrukas mainīgajiem - lietas, kas atkarīgi. Cool, vēl jautājumi? Labs? Jā. Mērķauditorija: Es domāju, ka jūs darījāt visu editing citā tekstā rediģēšanas programmu. Vai mēs arī lejupielādēt to? GABRIEL GUIMARAES: Jā, man patīk teksta redaktors sauc TextMate. Un tas ir ļoti labi. Tas ir labi piemērots Ruby. Tā krāsas lietas ļoti glīti. Tātad TextMate, T-E-X-T. Es esmu gatavojas likt, ka, turēt - Es domāju, jūs varat izmantot gedit vai kaut ko vēlaties. Bet tas ir specifisks Mac, un tas ir ļoti veikls, jo tas liek visiem failus tur lejā. Un Ruby on Rails, jums ir nepieciešams pāriet failus daudz. Tātad, tas ir daudz, daudz failu tikai iet no viena faila, lēkt viens fails vai otru. Tāpēc TextMate ir ļoti labs, bet tur ir daudz kas tur. Vēl jautājumi? OK, jā? Mērķauditorija: Vai ir mobilo attīstība izmantojot Ruby on Rails? GABRIEL GUIMARAES: Es esmu uzklausīja lietas. Man ir neizmanto tos. Jūs varētu izpētīt vairāk par to. Es neesmu pārliecināts, vai tur ir kāda laba lieta, kas tur. OK, jā? Mērķauditorija: [dzirdams] GABRIEL Guimarães: Nav Rails, iespējams, Ruby masīvs. Atvērt termināla logu un tips, "Ruby". Jā, droši vien, un tad jūs vienkārši instalēt Rails. Bet, ja jūs gatavojas uzstādīt jaunu Sliedes 4.0, kuru es ļoti ieteiktu, Jums vajadzētu lejupielādēt Ruby 2.0. Tas ir jauns too. Un jaunie Rails 4.0 ir kaut kas tiešām foršs, ka tas uz aktīviem. Tā rīkojas aktīvi. Aktīvi atkal ir attēli, CSS failus, un JavaScript failus. Tātad viena ļoti veikls lieta, ka Ruby on Sliedes tas jums ir visiem tiem CSS failus, kas jums ir, un viss - tas tikai saiņi viss uz augšu vienā milzīgs fails, bez atstarpēm vai jebko, lai samazinātu laiku, lietotāju vajadzībām, lai lejupielādēt šo kodu no servera. Tātad, kad jūs redzat jūsu datora, tas ir nāksies, piemēram, 15 CSS failus. Vai daudz, daudz dažādu CSS failus. Bet beigās, dienā, kas Sliedes automātiski, tas jums ir tas liek viss kopā vienā lielā failā tā, ka tas samazina pieprasījuma laikā. Tas ir patiešām foršs. Jā? Mērķauditorija: [dzirdams] GABRIEL GUIMARAES: Tieši tā. Tātad, Google Maps integrāciju. Tas ir JavaScript API no Google. Tāpēc es devos uz Google mājas lapā. Tie ir šo Google Maps API un I lejupielādēt kodu un integrētu to manā skatījumā. Tātad, ko man vajadzēja darīt tur ir man nepieciešama, lai iegūtu vietas no datu bāzes. Tas tika darīts kontrolieris. Tāpēc es devos uz kontrolieri - kur ir kontrolieris. Kontrolieris izskatījās. Got visi vietās studenti, nodot visu, kas uz liela mainīgais, liels saraksts, kas ir visas vietās. Un uzskata, ka JavaScript API ir kaut kas apskatīt, vai ne? Tāpēc, ka JavaScript iet jūsu HTML kodu, tas būs jānosūta lietotāja mašīna. Un uzskata, es ielādes visu, kas Informācija par Google API. Un tas darīja visu, kas man, kas ir patiešām foršs. Bet, ja jūs vēlaties izmantot lietas back-end, un tas ir kā bibliotēka, lai Piemēram, atkal - integrācija ar Facebook. Tas ir kaut kas, ka daudzi, daudzi, daudzi progr izmanto mūsdienās. Tā ir jūsu integrāciju ar Facebook jo tas ir tik daudz vieglāk vienkārši piesakieties ar Facebook nekā veidot kontu un blah, blah, blah. Tad jūs vienkārši izmantot gem, un tas ir tik vienkārši, kā iet uz savu gem failu. Gem fails ir fails, ko sauc par gem failu avots direktoriju jūsu Ruby on Sliedes projektu. Vienkārši iet tur un pievienot jaunu gem. Un jūs meklēt to uz augšu uz Google. Ir daudzi, daudzi, daudzi dārgakmeņi. Tur ir viens, ka īpaši nav šis Facebook integrāciju. Es neesmu pārliecināts, ko nosaukumu no tā. Tikai google to un jūs esat gatavojas to atrast. Labi, vēl jautājumi? Awesome, paldies par ierašanos.