GABRIEL GUIMARAES: Ez CS50. Üdvözöljük az Amazing Web Apps A Ruby on Rails. Így bárki, aki kíváncsi a web fejlesztés és gyártás weboldalak, webes alkalmazások, Ruby on Rails ez csodálatos dolog, hogy a Twitter, GitHub, Groupon, és mindenféle nagyon szép, és a nagy, webes alkalmazások segítségével a Az elmúlt néhány évben. És ez egy nagyon, nagyon klassz funkció, hűvös eszköz, mert ez az új. Így minden az új, nagy teljesítményű technológiák építeni egy keretrendszer, amely segít kezelni mindenféle csodálatos dolgot. De mi az a keretet? Tehát egy keretrendszer alapvetően valamit, ami teremt - Ha indul egy honlap, ha elkezdett a semmiből, mint megnyitja gedit ott, és azt szeretné, hogy az összes kódot a HTML, és a kód az összes PHP, az összes CSS, mindent a semmiből - ez csak lesz a sok munka. És egy keretet szó ad fele a honlapon végzett már. Így elindul egy fél website hogy mindent ott van. Mint az adatbázis-kapcsolatok, és az összes dolgok, amit meg kell aggódnia lenne, ha csinálod a semmiből, Önnek nem kell aggódnia azoknak alacsony szintű részleteket. De ma fogunk exportálni egy a honlapok, hogy a gólya a osztálya 2017 valószínűleg ismeri. Tehát ezen a honlapon az a honlap, hogy én nem a mi osztály a nyár folyamán. Ez egy honlap, ahol a diákok a Az osztály 2017 is jelentkezzen be, és kölcsönhatásban vannak egymással. És akkor ez a térkép - mindenki, ahol az emberek vannak. És volt egy könyvet játék, a dalok játék ahol láttuk az emberek dalait és az emberek könyveket. Amit szeretnek olvasni, mi szeretnek hallgatni. És a legérdekesebb része az, hogy a szó szoros értelmében elvitt három órát kódolni az egészet. Mert ha kellett tennem mindent semmiből, mint a nyitás gedit, akkor valószínűleg volna én 20, 30 óra. De Ruby on Rails, mert a mindent már fel nekem, csak elvitt három vagy négy óra, vagy valami ilyesmi. Tehát mi az a Ruby on Rails. Ruby on Rails, ismét már azt mondta, a keretrendszer. Ez a kép a keret. Így fogsz kezdeni épület egy ház, akkor már a fele ház kész. Ez a keretrendszer. És Ruby on Rails pontosan így. És meg kell gondolni rá, mint, elkezdi a honlapon, akkor indítsa el a web alkalmazás, már van a fele kész van. De először is, mi az a Ruby? Ruby on Rails-mintát használja nézet vezérlő, amely a paradigma, amely egy nagyon érdekes - és az összes alkalmazás manapság használ valami ilyesmi. Ez a gondolat az elválasztó dolgokat három részből áll, a modell, a kilátás, és a a vezérlő. Fogunk beszélni egy kicsit erről később. Először is, mi az a Ruby? Szóval ez a Ruby. És ez a szimbólum a nyelv úgynevezett Ruby. Ruby az egyik újszerű értelmezése nyelvek, így a script. Ez egy nyelvet, nem lefordított mint C. Ez össze a távon. Szóval ez jó, mert, mint a PHP, például az is értelmezhető, az nem készül összeállítás. Ez jó, mert a hordozható. Szóval csak át a kódot a egyik gépről a másikra. Egy Linux-gép, a Windows gép, hogy a Mac vagy Apple gép, vagy valami ilyesmi. És akkor nem kell aggódnia részleteit illetően egyes specifikus operációs rendszerek. Ez működni fog mindenhol. És Ruby egy olyan nyelv, - srácok valószínűleg emlékezni erre. Az emberek a hash függvényt végre C-ben a hash tábla a múlt héten, és volt mindenféle A szegmentálás hibák. És akkor a dolgok, hogy tudnák, hogy a húr i ott, a húr i Itt valójában kis-vagy nagybetűs, vagy ilyen jellegű aggasztó alacsony szintű részleteket. Nos Ruby, ha azt szeretné, hogy végre a hash tábla, ez pontosan hogyan hozzon létre egy hash tábla. Azt mondod, szótár, ez a neve az én változó = "Hash.new". És akkor szótárt ["foo"], és amikor én vagyok hozzátéve foo az én hash tábla, én vagyok csak azt mondom ize van. És akkor, ha azt akartam, hogy ellenőrizze, ize volt, én csak mondom, ha szótárt ["valami"] == true return true. Hűha, és ez a hash tábla. Ez a végrehajtás A hash tábla Ruby. Így mindenki kívánta tudtak volna használt valami hasonló Ruby az elmúlt heti Pset, igaz? Van mindenféle okok miatt akar használni a nyelvet, mint a Ruby. Ruby drágaköveket. Gem egy név, egy kedves A könyvtár Ruby. Tehát mindenféle érdekes funkciók hogy lehet, például, ha integrálni szeretnénk a kérelmemet. Ez a Harvard 2017 alkalmazás integrálták a Facebook. Szóval lehet bejelentkezni keresztül Facebook, hogy a kb. Tehát, ha akarsz csinálni, akkor nem kell aggódnia küldött néhány HTTP kérés a Facebook, és a várakozási a választ, és arra kényszeríti a válasz, és bla, bla, bla. Csak töltse le a drágakövet, hogy mindezt az Ön számára. És akkor nem kell aggódni, hogy a. És akkor sok segítséget on-line, természetesen. Sok, sok, sok weboldalak fog segíteni mind a Ruby és Rails. És ez a sok-sok móka a kódot. Pontosan azért, mert akkor nem kell többé aggódnia ezekről nem is olyan vicces problémákat. Mint ha valami kis-vagy nagybetűs, és miért van ez így egy szegmentációs hibát, és akkor tényleg belevetik magukat a nagyon érdekes dolgokat. Belevetik magukat a nagyon klassz problémákat. Tehát Ruby olyan, mint a C-értelme. Szóval ez nem lesz, hogy a nagy az ugrás valóban. Tehát állítja, ez a mi nyomtatási app Ruby. Azt hiszem, jól jönne print is, de teszi, amit mindenki használ. Tehát csak teszi "Hello World". Lehet, vagy nem lehetett, hogy A zárójel kerítő "Hello World" ott. Lehet csak választani, hogy a vagy nem használja ezt. És akkor x = "1". A while ciklus néz ki sok ugyanaz. Csak kevesebb szintaxis. Ez egyfajta tisztább egy kicsit. És aztán, ha x> 25 puts "Big!" és mást tesz "kis ...". És ez a fajta C ebben az értelemben. Tehát, ha megnézzük, hogy, akkor megközelítés talán érthető mindent, ami folyik. De ez erősebb. Több erős, mert több, mint, hogy a akkor a dolgok nem is olyan - valamilyen hackage egy kicsit. A C-ben nem lehetett csinálni csak nem egy sorban. Például fogalmaz: "Én vagyok # {x}". Ez csak szintaxisa tesz az érték X itt, és ne nyomtassa ki a karakter x. A C-ben meg kellett csinálni a százalékos d, és majd tegye fel a változó x után vessző van, vagy valami ilyesmi. És Ruby van egy rövidítés csak csinálja. És teszi ezt, ha x> 3, így Ön tesz az, ha minden egy sorban. És akkor egy listát. Listák C, mint egy sor, meg kell nyomon követheti, milyen nagy a tömb, vagy különben kap egy szegmentációs hiba. A tömb csak egy típust. Szóval ez sem egy sor díjat vagy egy tömb az egész. Ebben az esetben, készítettem egy listát itt, ez egy tömb, amely az első elem egy string, John, majd négy, kettő - ezek egész számok. És aztán csak hozzá, lista, a Balra mutató hegyes, Left Angle Bracket, három. Ez azt jelenti, csak hozzáfűzi valamit a listámon. Tehát ez a fajta sokkal érdekesebb, mert ha akarta használni ezt a csak egy egyszerű listát egészek, amit lehetett, teljesen. Ez teljesen rendben van. Csak tedd egész ott. De ha akartam csinálni valamit, ami vonzóbb, amely a többi dolog, amely - Nem is tudom, mindenféle listák ott, vagy egyéb tárgyak, amelyek több Érdekes, akkor teljesen csinálni. Ez teljesen rendben van. És akkor, ha azt szeretné, hogy halad végig A lista, akkor használja a több C-szerű fajta megközelítés. Ez a hurok, akkor kezdeményezni változó, i = "1", vagy i = "0". És akkor megy, és annak variációi, és kap az összes elemet. De akkor is használja ezt a több, Ruby-szerű megközelítés. Ez olyan, mint egy list.each. Ez csak azt mondom, vissza rám minden elemét a lista. És ezt minden elem, hívjuk őket elem. Tehát ez csak egy név, hogy én vagyok hogy az egyes elemek. És most ez lesz megismételni minden az elemek és elem, ez lesz hogy az út, hogy hozzáférést az egyetlen elem. Szóval lehet teljesen ragaszkodnak a C módszer, de ez is működik. És ez pontosan ugyanaz a dolog, OK. És azon kívül, hogy nagyon, tényleg könnyen integrálható Ruby és a HTML mivel a srácok érdekel A webes alkalmazások. HTML határozottan valami, fogsz használni sokat. És itt, ha akarta, hogy Ruby HTML, csak itt kezdődnek, <%. Ez azt jelenti, hogy itt Ruby elindul. Aztán%>, olyan, mint PHP ebben az értelemben. Itt Ruby véget ér, és akkor csak tedd meg, ha van. Aztán van néhány változó user.logged_in. Ruby-ban, mi általában hozzá azokat, vagy kihallgatás jel vagy felkiáltójel jel, mint egy bank karakter, csak, hogy milyen megkülönböztetni a funkciókat. De csak fel, hogy a saját érdekében. Ez nem olyan dolog, amely megváltoztatja semmit a funkcionalitás. Szóval, csak hogy emlékeztessen, hogy ez a funkció - és funkciók Ruby, inkább, mint a C, mint mondtam már, nem kell a zárójel. Annak érdekében, hogy bejelentkezett a dolog, ez funkció, ez egy módszer. De nem kifejezetten szükséges tegye a zárójelben ott. Tehát csak azt kérdezi, ha a felhasználó bejelentkezett, és ha a felhasználó bejelentkezett, már HTML újra kezdődik. Szóval szívesen, és itt Én nyomtassa ki a user.name. És ennyi. Szóval ez elég egyenesen előre, hogyan integrálni Ruby a HTML. És a források, mint mondtam, vannak mindenféle források Ruby. Ti mind úgy néznek ki ezt fel utána mert mind a video, és A diák, fognak elérhető online. És most menjünk be Rails. Rails szeretet. Sínek - így Ruby az ő nyelvét. OK, csakúgy, mint a PHP, csakúgy, mint a Python. Ez egy magas szintű nyelv, nem úgy, mint C. C a közepes, alacsony szintű nyelv az értelemben, hogy Ruby nem kell aggódni memória átcsoportosítását, és a mutatók, és az ilyen jellegű dolgokat. De Rails ez a program, amely ben írták Ruby. És ez használ Rubin, annak érdekében, hogy ezt a keretet, az Ön számára, hogy képes legyen építeni félelmetes webes alkalmazások. Így van, hogy először telepíti Ruby on a gépet, de a legtöbb gép már ezt. És majd telepítse sínek a tetején. Fogunk beszélni, hogy később. És miért Rails? Tehát MVC, ez az MVC beszélgettünk egy kicsit bit, tesz mindent egyszerűbb, mivel osztja a dolgokat, amelyek fogalmilag különböző különböző része az alkalmazás. Kevesebb időt töltött az alacsony szintű problémák, újra, és nagyon, nagyon népszerű most. Tehát mindazok számára, akik érdeklődnek a Az induló jelenetet, vagy valami mint a kezdő vállalkozások és az emberek a technológiai piacon, akik saját vállalkozás elindítására most nagyon, nagyon rajongói Ruby on Sínek mert olyan gyorsan. Szóval, lehet kapni valamit, és fut kevesebb, mint egy nap, és ez tényleg nagyon meggyőző érv, hogy használja Ruby. És a sínek 4.0 - ez nagyon frissen a sütőből most. Tehát Sínek 4.0 - Azt hiszem, az első kiadás volt, ez év márciusában. És ez igazán szép, azt minden típusú új, hűvös jellegét. Így Ruby on Rails egy keretet, ami folyamatosan frissül, hogy minden az új technológia. Az első alkalommal próbáltam használni a Ruby on Sínek, volt ez a hiba, mert létrehozta az első webes alkalmazás, és úgy nézett ki, mint ezt. Így teremt az összes ilyen fájlok téged, és fogalmam sem volt, mi - Mi ez? Létrehozta az összes ezeket a fájlokat, és csak akart létrehozni egy egyszerű program, a egyszerű HTML honlapján. És nem tudtam csinálni semmit. Szóval egy kicsit túlterheltek. De ez az egyik dolog, hogy ha egyszer értem, minden lesz így sokkal világosabb. Tehát ne túlterheltek az első látvány, amit létre először. Tehát mi történik Rails teremt Minden a fájlokat. Tehát az egyik az, hogy doc, dokumentáció. Db, ami kapcsolódik az adatbázishoz. Lib, ez a könyvtárak be. Állami, script, és néhány dolog. Elég sok minden fogsz aggódni arról van szó, az app mappa, ott. Ez a mappát, amely az alkalmazás. Az összes többi kép - néhány közülük fontos, és te fog tanulni később. De ők csak itt tartalmazza a keretet. Tehát az első sarokköve a ház srácok az épület, OK? De az app mappa - ez az igazán fontos. És az app mappában eszközök. Eszközök elég sok mindent hogy jön. Képek például, mindent, ami statikus, hogy fog letölthető a honlapon. Így a képek, JavaScript, CSS - azokat a dolgokat olyan eszközök. Vezérlők - fogunk beszélni többet mik vezérlők, modellek, és mezők a második. És segítők funkciókat, hogy használhatja az egész a kódot hogy segítsen csinálni valamit. Úgy működik, mint bejelentkezve, a példa - user.loggedin. Ez olyan funkció, amely valószínűleg meg kell használni minden részét a alkalmazás. Így tesz valamit, mint hogy a segítő. Borítékok - ez az, ha akarsz küldeni egy e-mailt a felhasználók számára, akkor szeretné használni a levelező. És modellek és nézetek, megyünk beszélni, hogy most. Tehát az MVC, ez Az alapvető sarokköve a Ruby on Sínek, és a legtöbb keretek manapság, hogy őszinte legyek. Tehát újra, akkor külön minden kódunkat három különböző részből áll. A modell - a modell alapvetően az adatbázisban. Ez kezeli a dolgokat az adatbázisban. Tehát minden egyes táblát az adatbázisban egy megfelelő fájlt a modellen belül. Szóval ez egyfajta tábla a felhasználók számára. Szóval tárolja az adatokat, mint a felhasználó nevét, e-maileket, a cím, a jelszó, és hasonló dolgok. Fogsz egy fájl A modell hívott rb - rb Ruby. És ott fogsz minden A módszerek és a változókat. A változók fognak megfelel a felhasználó nevét, e-mail, és a mindent. És akkor megy, hogy a módszereket. Ez lesz valami vonatkozóan - fogod kezelni ezt az információt az adatbázisban. Létrehozásához modell Rails, csak használja Rails generál. És hozzon létre dolgokat Rails, akkor valóban szükség van a terminál. Tehát ez egy nagyon terminál alapú keretrendszer. Csak jelentkezzen be a terminál, és ne Rails, generál modellt. És a neve a modell felhasználó. És én csak azt szeretném, hogy a két változó, két oszlopot, az én asztalom. Szóval ez az e-mail. E-mail egy karakterlánc típusú. Jelszó, jelszó még egy karakterlánc típusú. Ez az a két dolog. Elég egy egyszerű felhasználónak asztalra. De akkor teljesen tesz egy száz dolog, hogy ott van, ha akar. És a sínek is teszi, hogy nagyon, nagyon egyszerű, hogy minden fajta adatbázis kapcsolatokat. Tehát általában, ha már táblák az adatbázis, ők nem nagyon függetlenek egymástól. Gondoljunk. Azt akarod, hogy vásárolni és eladni termékek online. OK, így van egy weboldal, ahol akar vásárolni és eladni termékeket. Így minden felhasználó számos termékek hogy ez a felhasználó hajlandó eladni. És minden felhasználónak is számos tranzakció hogy a folyamatban lévő, vagy valami ilyesmi. És a tranzakciók egy másik felhasználóval. Minden egyes tranzakció tartozik két különböző felhasználók számára. A felhasználó, ami a vételi és a felhasználót, hogy árulja. Tehát ezek az úgynevezett adatbázis kapcsolatokat. És itt van pontosan a kulcsszavak, sok és tartozik. Ezek a legfontosabbak. És csak most fog mondani, mert Például, ez a példa a modell a Harvard 2017 honlapján. Ismét, a diákok itt - minden diák a honlapon, tanuló egy modell, egy adatbázis tábla. Minden tanuló volt, sok könyvet, mert lehetne mondani, hogy mi a kedvenc könyvek, jobbra. Így minden könyv tartozik egy diák itt. És attribútum elérhető - ez csak azt mondom, ezek a változó. Ezek a változó elérhető ez a modell. És a változók a szerzője A könyv, leírás, műfaj, és könyv címét. Tehát csak az információt A könyv. És itt van egy módszer, amely egyszerűen rendezi mindent. Így határozza meg, és a végén van, ez csak mondván, itt jön a módszer. Self.sorted_all. Ez csak, hogy nekem mindent sorrendje, és ez hogyan hajtsák végre a rendezési algoritmus, amely meglehetősen egyszerű. De alapjában véve, ez így a modell úgy néz ki, az OK gombra. Van valakinek kérdése az adatbázisban a dolog? Kapcsolatok? Világos? Igen. Közönség: Meg tudod csinálni a rendezési algoritmus? GABRIEL GUIMARAES: A sort algoritmus, OK. Ha megszokja, hogy Ruby szintaxis, ez lesz világos. De alapvetően, elems is Book.all. Tehát a könyv a neve a modell. Amikor létrehoz egy modell, akkor jön mindenféle jó módszer az Ön számára. Tehát dot.all olyan módszer, amely visszaadja az összes könyvet. De megtalálni, például, azt keresni egy könyvet, és vissza a könyvet, vagy valami ilyesmi. És így elems minden. És én csak azt mondom elems.sort. Sort egy beépített Ruby funkciót. És, nem ab. Tehát ez nem megint - fogsz rendezni. De fogsz kapni ez az érv nekem. És az az érv használ - ez az egyik a keményebb dolgokat Ruby valóban, ezt csinálni a dolog. De ha egyszer megérted, hogy mindent jön, nagyon, nagyon intuitív. Így az AB, ez azt mondja, az a hely tulajdonosai, hogy fogom használni - mint a A változók fogok használni, a fognak nevezni, és b. És ezek a könyvek. Tehát azért, mert a fajta kell összehasonlítani elemeket, ne feledje, hogy? Tehát, ha rendezni a dolgokat, akkor összehasonlítani a két elem. Azt fogom mondani, hogy minden alkalommal fogsz összehasonlítani - így ez, én halad rendezni egy érvet. És ez az érvelés nem minden A do a, és itt, oké? És ez az érv, csak mondja sort, hogyan lehet összehasonlítani. Szerint fog működni, de azt lenne összehasonlítani a alapértelmezett összehasonlítása algoritmus. Azt akarom, hogy összehasonlítani egy nagyon különleges módon, nevezetesen, amikor a könyv jött létre, amikor az egyes könyv jött létre. Szóval azt mondom, mondjuk a neve az első könyv, és a neve a a második könyv, mint b, szeretnék sort rendezni valami alapján b.created_at ezt furcsa szimbólum, a.created_at. És az a furcsa szimbólum rövidítés mert ha az egyik nagyobb, mint a Más, vissza 1. Ha az egyik egyenlő a Más, vissza nulla. Ha az egyik kisebb, mint a Más, vissza mínusz 1. Szóval, ez az, amit a furcsa szimbólum. De ez nem fontos. Úgy értem, mit akarok titeket, hogy most az a gondolat, hogy az adatbázis - akkor a modell is. Szóval nem kell aggódni beköti és használja SQL utasítást, és hasonló dolgok. Azt is létrehozhat ajtók SQL injection és minden fajta biztonsági problémák. Ebben az esetben, akkor nem aggódj. Csak módszereket alkalmaz, mint book.all. És ez, a háttérben persze, fog az adatbázist, és ez majd egy SQL utasítás hogy az összes könyvet. De nem kell aggódj. Ez az elvihető, OK? És ha van egy belongs_to adatok , mint ez, hogy az azt jelenti, hogy ha van egy könyv objektumot, akkor láthatjuk, mi a diák. Tehát melyik hallgató ezt a könyvet? Így tudjuk csak használni book.student, és hogy megadja neked, amit a diák. És ez egy nagyon jellemző, hogy a. OK, most már a kilátást. Tehát a modell milyen kölcsönhatásban az adatbázis, nem igaz? A kilátás alapvetően HTML, és CSS, és néhány JavaScript. És ez az, amit a felhasználó lát. A felhasználó nem fog lásd az adatbázis. Meg fogja látni néhány adatot a adatbázis beágyazva a nézőt. Ruby on Rails teszi igazán egyszerű, hogy a területen. Először is, mert már létre is neked, ki a dobozból, egy elrendezést. Az elrendezés alapvetően valami, ami - ha az összes oldalt egy logót a tetején és, nem is tudom, valami menü vagy valami ilyesmi, hogy minden oldala részesedése a közös, akkor nem létre kell hozni sok, sok, sok HTML fájlokat, ahol az összes fájlt is, hogy ugyanazt a HTML-kódot. Úgy értem, hogy ez hülye, mert te csak ismétlődő kódot a különböző fájlokat. Ez egyáltalán nem jó megközelítés. Így Ruby on Rails teremt ezt az elrendezést az Ön számára. És ez is csak azt mondom, az én oldal lesz, hogy ez a HTML, ez a fej címet itt, és ezek stíluslap link tag. Plug itt az én CSS. Plug itt az én JavaScript és néhány meta tagek. Ez csak valami, hogy ezt automatikusan az Ön számára. És akkor a végén a feje, most Itt kezdődik a szervezetben. És most ez az én tényleges tartalom. Tehát, ha azt akartam tenni valamit, mint egy menü itt, azt tedd jobbra át ezt a helyet, vagy valami ilyesmi, annak érdekében, hogy minden az én oldalt megosztották azt. Így az elrendezés közös az összes oldalt. Most, hogy a hozam itt csak azt mondja, nem számít, milyen oldalakat ez van, csak csatlakoztassa a tartalmát az oldal, oké? És most ez, például a tartalma egy oldal, ami lesz dugva ezt a hozamot adatok automatikusan Rails. De ez a layout közös az összes oldalt. És ez egy példa az egyik oldalon. És pontosan ez az oldal amely felsorolja az összes könyvet. Tehát ez egy alapvető HTML táblát tetején. Tehát lista könyvek, a cím, szerző, leírás, műfaj. És itt használunk, megint, néhány Ruby szintaxis @ books.each-- @ Fajta mondja, hogy a változó globális értelemben. Mivel ez a változó valójában kijelentette, a vezérlő, amely fogsz látni most. De csak magától értetődőnek, hogy ez a @ Könyvek egy változó, amely a lista az összes könyvet. Tehát books.each, ne, és újra, ez Csak azt mondom, hogy nem kíván nevet mind a bejárók, hogy mi nem nem kell aggódnia a négy, int i bla, bla, bla. Csak, hogy az egyes elemeket, és használja őket. Szóval ez a könyv, és aztán csak a nyomtatási itt. book.title, book.author, book.description, és bla, bla, bla. És itt van a link_to. Tehát link_to csak egy link tag hogy a felhasználó rákattint, és megy egy másik weboldalon. Link_to, azt mutatják, hogy bizonyos könyvet. Tehát, ha a felhasználó nagyon érdekli ezt a könyvet, akkor kattintson a show. Vagy kattintson a szerkesztés, ha akar szerkeszteni a könyvet. Vagy megsemmisíteni, ha akarja törölni A könyv az adatbázisból. OK, ez hogy van értelme? Jó. Végül, a vezérlő. Tehát alapvetően a vezérlő a felület között a modell és a kilátás. Tehát a modell a része a kód, amely az adatbázis - minden egyes táblát az adatbázis a megfelelő fájlt a modellt, és így tovább. És hogy ezt a modellt, és A nézet egymásra? Tehát a vezérlő. Mi a vezérlő tesz, akkor a modell valami hasonló, például hogy az összes, a könyv belsejében változó. Mint ez, @ könyveket. És meg kell, hogy legyen globális ezzel a dolog, mert ez lesz hozzáférhető a nézetet. Ez nem fog belül fel kell használni maga a vezérlő. És ez csak lassítja információk a nézetet fogja használni. Például a vezérlő ellenőrzi ha a felhasználó online. És hogyan csinálni? Ez valójában azt kéri a modell mert a modell a információkat a felhasználó. Ez egy felhasználói tábla, a könyvek asztal, másik asztalnál. Tehát a vezérlő megkérdezi, a felhasználó online. Ha a felhasználó az interneten, a vezérlő kezeli a dolgokat, mint amivel egy cookie-t, vagy valami ilyesmi, hogy tegye a bélyegző azt jelenti, hogy a felhasználó online. Nem kell, hogy jelentkezzen be újra. És ez meg fog betölteni a változó nevű felhasználó, például, hogy a nézet használhatja. És a nézetet tud valamit, például szívesen user.name. Így fog mondani, welcome John, welcome James - valami ilyesmi, nem? Tehát az összes ilyen használt változók a view fog betölteni a vezérlő és lesz húzta fel a modellt. Ez a példa egy vezérlő. Tehát, alapjában véve, minden - nevezzük ezeket a dolgokat intézkedéseket. Tehát index egy akció. Ez egy Ruby funkciót. Ez egy Ruby módszert is. De a vezérlő hívások ezek a dolgok intézkedéseket. És minden egyes művelet kapcsolódik egy útvonalat. Tehát itt ez az útvonal, például a egy get adatok / könyveket. Tehát, ha megy a harvard2017.com/books, mi fog történni, ez a kód lesz a címe. És van egy file - hadd nyissa meg ezt a nagyon gyorsan. Van egy nevű fájlt raw fájlt. Ez nem nyílik. Szóval van egy nevű fájlt raw fájl hogy alapvetően megfelel - Ó, most már nyitás. Itt útvonalakat. Tehát alapvetően megegyezik a törzs, aktiválás / Új például a valamit a vezérlő. Szóval, itt van ez a vezérlő neve aktiválás vezérlő, de itt, megvan a könyveket, például. Tehát Mérkőzések - könyv / új, a vezérlő könyvek, a cselekvés új. Tehát alapvetően nagyon egyszerű dolgokat. És itt, ha kellett, hogy / könyvek, perjel az ID a könyveket, slash új, fogsz menni, hogy a Ruby módszer odalent. Tehát itt, mi ez az index csinál csak betöltése könyv naplót. Ez valami, ami - Belépek az összes könyvet a naplóba. És rendezni az egészet. Tehát ez lesz, hogy visszatérjen a sorrendje könyveket. Ez megint az adatbázisban. Tehát ez egy olyan módszer, a modell. Látta ezt a módszert, hogy létre a modellben. Most ez csak betölti az összes könyvet és azzal, hogy a változó látható a nézetet. Mert nem lehet, a közepén a HTML-kódot, akkor nem hívja valamit közvetlenül a modell, azért, mert két okból. Először is, biztonsági okokból, mert ez nem igazán érdekes, hogy rakodásra vonatkozó információkat közvetlenül belül Minden HTML, ami az adatbázisban. És a második, hogy az Ön kód igazán szervezett. Így külön pontosan különböző részein. Tehát BookLog.sorted_all, ez a adatbázis, és ez megy, hogy a változó @ könyveket. És most ez a változó elérhető belül, a HTML-kódot. Szóval, ha csak fel az összes könyvet ott, mint mi, itt. Ez az a változót. És látogatások respond_to do | Formátum |, ez csak egyfajta Ruby szintaxisa ha a felhasználó kér tőlem HTML kódot, megyek válaszoljon HTML kódot. Amennyiben a felhasználó kéri rám JSON kódot, ami valami, hogy a webes alkalmazások használata kommunikálni egymással, akkor általában használ JSON, vagy más a fajta dolog. Tehát csak reagál használja ezeket a Két különböző formátumokban. De egy normál felhasználó, ez nem kellene itt lennie. Akkor csak válaszolni HTML, és ez rendben van. Tehát nem igazán aggódnia, hogy sokat erről. Ez az egyetlen kódsort a ellenőrzés ez berakodás HTML adatbázis, amivel a valamit, ami megközelíthető a nézetet. És akkor az új, ezért itt Én létre könyveket. De ahhoz, hogy a könyvek, kell egy diák mert kell, hogy a tanuló akinek könyvei ezt tartoznak, igaz. Tehát @ diák = Student. Diák, újra kezdjük a egy nagy S az a modell diák. OK, így ez a modell diák, ez a modell könyv naplót. Student.find, így fogom találni a diák használ paraméterek azonosító. params.id, ez csak vigyen az érték Ennek azonosítóval át - és az URL-t. Csak megy keresni, hogy a diákok. És az első, megyünk ellenőrizni ha a hallgató néhány dalt és bla-bla-bla. És ez már kezeli a esetben, ha a tanuló nem létezik, pl. És akkor, még, csak válaszolni hogy ugyanezt a HTML. És akkor lehet, hogy a felhasználó létre a dalokat. Szóval ez az új. New általában használt, legyen a felhasználó létrehoz valamit. És akkor ott van az akció létrehozása ez általában használt - ténylegesen a dalok az adatbázisban vagy valami ilyesmi. De ha egyszer elkezdi használni Rails, ezek a dolgok lesznek sokkal, de sokkal több tiszta. OK, hűvös. Bármilyen kérdése eddig? Vajon van értelme a vezérlők, modellek, mezők - igen? Ismét a Rails alkalmazás - így minden megtalálható itt. Szóval van app, vezérlők, ezek mind az én vezérlők. Így például, könyvek irányítani. Ez az, amit most láttam. És akkor nézeteit. És minden vezérlő rendelkezik egy kapcsolatos véleménye, igaz? Így automatikusan hívja ezt a indexe itt, például, vagy ha hívja ezt a könyvet az új, akkor a nézet, könyvek, az új fog hívni. Tehát Rails mindent automatikusan az Ön számára. Szóval minden vezérlő társult megtekintése és az összes modell - Itt van egy, kettő, három, négy, öt modellt. De ez egy tanuló modell, így ezek azok a változók, amelyek az összes diákok - lokalizáció, születési dátum. A diákok egy kicsit bonyolult, mert minden hallgató több különböző módszer társul hozzá. De ez csak kezeli a tábla, hogy már az összes a diákok az adatbázisban. És OK, telepítése Rails. Telepítés Rails, hogy őszinte legyek, nem a legegyszerűbb dolog. De ha egyszer kap múlt mindent, ez nagyon, nagyon egyszerű. Tehát telepítése Rails, csak megy a honlap, rubyandrails.org / download és kövesse az ott leírt utasításokat. Download mindent. És meg tudod csinálni, hogy akár a készülék, A CS50 Appliance, a A Windows, Mac, vagy bármilyen operációs rendszer, amelyet választott. Ruby on Rails fut minden. Valószínűleg te már Ruby telepített ha van egy Mac vagy - A készülék azt hiszem Ruby - Nem vagyok benne biztos. És akkor csak ezt telepítve. És ha azt szeretnénk, hogy hozzon létre egy új webes alkalmazás, csak do Rails, új blog. Sínek, az új - Nem tudom - a neve a honlapon. És ez ilyen egyszerű. Meg fog létrehozni az összes ilyen fájlok csak mutattam. De a modell, a kilátás, és a vezérlő nem lesz lakott még. Te csak megy, hogy ott és feltölti a három mappákat. Nagy az esélye, szeretnénk létrehozni egy modell, például az, végre egy modell. Tehát még egyszer, mindig próbál harapni kisebb bitek a probléma egy időben. És akkor mondjuk, hozzon létre a modell a felhasználók számára. Ez az első dolog, ha a felhasználók. Aztán szeretnénk létrehozni a modellt ahogy mi itt mutatott. Sínek, generál, modell, a felhasználó, majd a e-mail húr - van itt. És csak létre, hogy a modell, igen. Rails generál model Felhasználó e-mail: string Jelszó: string. És akkor létrehoz egy vezérlő hogy foglalkozik a felhasználó. És akkor új felhasználók és nem azokat a dolgokat. És akkor lépni, hogy létre a többi az Ön honlapján. Cool, kérdés? Igen. Közönség: [Nem hallható] GABRIEL GUIMARAES: Igen, igen, feltétlenül kell, hogy menjen be a nézetet. Ez egy nagyon jó kérdés. Tehát a nézet, hogy valójában mi tartalmazza a HTML. Tehát ez az, amit a felhasználók fog látni. Ismét itt, ez egy példa a nézetet. Meg HTML kódot, és Ruby kódot ugyanabban az időben. Tehát a Ruby kód van, hogy a dolgokat az adatbázisból, például amelyeket betöltött a vezérlő. Annak érdekében, hogy a változó @ könyveket, például minden, a könyvek és az asztal könyvek az adatbázist. Mi gondoskodott arról, hogy volt a vezérlő. És a nézet - az egyes oldalakat ki a honlapon lesz egy társított nézet. Tehát, ha megy a honlapján, a első oldal, harvard2017.com. Ez azt mutatja, egy oldalon. És akkor megy a perjel profilt. Ez fog menni egy vezérlő ez egy profilt vezérlő. És a profil vezérlő lesz hogy megadja a szelvény nézet. És a szelvény nézet fog nézni valamivel, mint ez, de fog van információnk a felhasználó, és nem a könyveket. Tehát HTML kódot és CSS és a dolog, hogy a felhasználó lát A Ruby kód - hogy valóban kiírja a dolgokat az adatbázisból. Ez több tiszta? Remélem. Közönség: A HTML-kód segítségével valójában, hogy a honlapon, hogy a felhasználó látja, de a Ruby kód mi teszi a honlap működik? GABRIEL GUIMARAES: The Ruby kód kerül át a HTML. Tehát mi a felhasználó kap csak HTML, rendben? Ez csak a HTML. Ez book.title fog konvertálni értékét book.title HTML, OK. Szóval ez az egész a szerver, és így ez attól függ, hogy milyen könyvek vannak a szerver most. De mi a szerver lenne azonnal értelemben csak a HTML kódot, OK. De a nézet csak ad az elrendezés amit a HTML fog kinézni és milyen változók lesz. Ez a fajta nyomtatott ki, OK. Ezek a dolgok vannak alapvetően nyomtatási kimenet. Fognak nyomtatni változó, OK. Tehát mi csak a HTML, azok - szerző, cím, leírás. Ez a statikus tartalmat. Ez nem fog megváltozni. Ez csak sima HTML kódot. Ezek a nyomtatási kimenet változók - dolog, hogy attól függ. Cool, több kérdést? Jó? Igen. Közönség: Azt hiszem, te mindent megtesz A szerkesztés egy másik szöveget szerkesztő program. Ha mi is le, hogy? GABRIEL GUIMARAES: Igen, szeretem ezt a text editor nevű TextMate. És ez nagyon jó. Ez jól illeszkedik a Ruby. A színek a dolgok nagyon szépen. Tehát TextMate, a T-E-X-T-vel. Megyek hogy tegye, hogy tartsa a - Úgy értem, akkor a gedit vagy bármit, amit akarsz. De ez a Mac specifikus, és ez a nagyon szép, mert ez hozza az összes a fájlokat ott. És Ruby on Rails, meg kell váltani fájlokat sokat. Tehát sok-sok kép csak megy egy fájlt, ugrás egy fájl vagy a másik. Tehát TextMate egy nagyon jó, de a rengeteg odakinn. Több kérdés? OK, igen? Közönség: Van-e a mobil fejlesztés a Ruby on Rails? GABRIEL GUIMARAES: Már hallott dolgokat. Én nem használtam őket. Lehet kutatás bővebben. Nem vagyok benne biztos, hogy van-e jó dolog odakint. OK, igen? Közönség: [Nem hallható] GABRIEL GUIMARAES: Nem Rails, Valószínűleg Ruby tömb. Nyisson egy terminál ablakot és írja, "Ruby". Igen, valószínűleg, és akkor Csak ki kell telepíteni Rails. De ha akarsz telepíteni az új Sínek 4.0, amit én nagyon ajánlom, akkor le kell töltened Ruby 2.0. Ez az új is. És az új Rails 4.0 van valami nagyon klassz, hogy ez a vagyon. Ez kezeli a vagyonát. Eszközök megint a képek, CSS fájlok, és JavaScript fájlokat. Tehát egy igazán szép dolog, hogy a Ruby on Rails ez az Ön számára az összes ilyen CSS fájlokat, hogy van, meg minden - ez csak kötegek mindent az egyik hatalmas fájlt, szóköz nélkül, vagy ilyesmi, hogy minimálisra csökkentsék az időt a felhasználói igények le, hogy a kód a szerver. Tehát, ha látod a számítógép, ez megy, mint a 15 CSS fájlokat. Vagy sok-sok különböző CSS fájlokat. De a végén a nap, mi Sínek automatikusan ez az Ön számára, hogy hozza Mindent össze egy hatalmas fájlt úgy, hogy minimalizálja a kérelem időben. Ez nagyon klassz. Igen? Közönség: [Nem hallható] GABRIEL GUIMARAES: Pontosan. Szóval, a Google Maps integráció. Ez egy JavaScript API-t a Google-tól. Szóval, én csak elmentem a Google honlapján. Ők ezt a Google Maps API-én letölthető a kódot, és az integrált meg a véleményem. Szóval mit kell tennem ott van szükségem, hogy a helyeken az adatbázisból. Ez történt a vezérlő. Szóval elmentem a vezérlő - hol van a vezérlő. A vezérlő nézett ki, mint ez. Megvan az összes helyszín, a a diákok, hogy az összes az, hogy egy nagy változó, egy nagy listát, hogy minden a helyszínen. És a véleménye, mert a JavaScript API valami a megtekinteni, igaz? Mivel a JavaScript fut belül a HTML kódot, akkor fog küldeni a felhasználó gépére. És a véleménye, azt töltve minden, hogy a információkat a Google API-t. És ez nem minden, hogy az nekem, ami nagyon klassz. De ha szeretné használni a dolgokat a back-end, és ez olyan, mint egy könyvtár, a Például, újra - Az integráció Facebook. Ez valami, hogy sok, sok, sok apps használ manapság. Tehát már a integráció Facebook mert így sokkal könnyebb, hogy csak Belépés Facebookon, mint létrehozni egy fiókot, és bla, bla, bla. Akkor csak egy drágakövet, és ez olyan egyszerű, mint megy a gem fájlt. Gem fájl egy fájl neve gem fájl A forrás könyvtár a Ruby on Sínek projektet. Csak menj oda, és új gyöngyszeme. És úgy nézel fel a Google-on. Sok, sok, sok drágaköveket. Van, amelyik kifejezetten nem ez a Facebook integráció. Nem tudom, mi a neve is. Csak a Google, és te fogja megtalálni. OK, több kérdést? Félelmetes, köszönöm, hogy eljöttek.