GABRIEL GUIMARAES: To je CS50. Vítejte na Amazing Web Apps s Ruby on Rails. Takže pro každého, kdo má zájem na web vývoj a vytváření webových stránek, web aplikace, Ruby on Rails, je to úžasný nástroj, který Twitter, GitHub, Groupon, a všechny druhy opravdu pěkné, a velký, webové aplikace používají v v posledních několika letech. A je to opravdu, opravdu cool funkce, v pohodě nástroj, protože je to nové. Tak to má všechny nový výkonný technologie zahrnuty do jedné rámec, který vám pomůže vypořádat se s všechny druhy úžasných věcí. Ale co je to rámec? Takže rámec je v zásadě něco, co vytváří - při spuštění webové stránky, pokud jste začali od nuly, jako je otevření gedit tam, a chcete kódovat všechny vašeho HTML a kódu všech svých PHP, všechny vaše CSS, všechno od nuly - že to prostě bude hodně práce. A rámec vám doslova dává polovina internetových stránek provádí již. Takže vám začít s polovinou webové stránky že má všechno, co tam pro vás. Jako databázová připojení, a všechny druhy věcí, které budete muset starat o pokud děláte to od začátku, nemusíte se starat o ty, Podrobnosti nízké úrovni. Ale dnes budeme exportovat jeden z webové stránky, které nováček z třída roku 2017 jsou pravděpodobně obeznámeni. Tak tento web je web, který jsem udělal pro naší třídy přes léto. Bylo webové stránky, kde se studenti třída 2017 mohl přihlásit a na sebe vzájemně působí. A pak je to mapa - všichni, kde jsou lidé. A měli jsme knihu hra, písní hru kde jsme viděli písně lidí, a knihy lidí. To, co rádi čtou, co které chcete poslouchat. A nejzajímavější na tom je, že mi doslova trvalo tři hodiny kódovat všechno. Protože pokud bych měl udělat vše, co od poškrábání, stejně jako otevření gedit, že by pravděpodobně vzali mi 20, 30 hodin. Ale s Ruby on Rails, protože vše, co již byla zřízena pro mě, to mi trvalo jen tři nebo čtyři hodiny, nebo něco takového. Takže to, co je Ruby on Rails. Ruby on Rails, opět, jak jsme již řekl, je rámec. To je obraz rámce. Takže se chystáte začít stavět dům, už máte polovinu Dům udělal. To je rámec. A Ruby on Rails je přesně takhle. A vy byste měli myslet na to, jak můžete začít webové stránky, začnete svůj web aplikace, už máme polovina z nich tam udělal. Ale nejdříve ze všeho, co je Ruby? Ruby on Rails používá pohled modelu regulátor, který je paradigma, které je opravdu zajímavé - a všechny aplikace v dnešní době použít něco takového. Tato myšlenka oddělení věci do tři díly, model, pohled, a regulátor. Budeme mluvit trochu Více o tom později. Za prvé, co je Ruby? Tak tohle je Ruby. A to je symbol jazyk s názvem Ruby. Ruby je jedním z Zánovní interpretovaných jazyky, takže skript. Je to jazyk, který není sestaven jako C. Je sestaven na útěku. Tak to je dobře, protože, stejně jako PHP, Například je také interpretována, je není kompilován. To je dobře, protože jeho přenosný. Takže si stačí zadat svůj kód od jednoho počítače na jiný. Z počítače s Linuxem, na Windows Stroj, na Mac nebo Apple stroji, nebo něco takového. A nemusíte se bát, podrobnosti týkající se každého z konkrétních operační systémy. Bude to fungovat všude. A Ruby je jazyk, který - vy si jej pravděpodobně pamatují. Lidé používají hašovací funkci implementované v C pro tabulku hash minulý týden a měl všechny druhy porušení segmentace. A pak se věci dělat starosti, zda že řetězec i tam, string i zde byla skutečně malá písmena nebo velká, nebo tento druh znepokojující Podrobnosti nízké úrovni. No v Ruby, pokud chcete implementovat hash tabulky, je to přesně tak, jak jste vytvoření hash tabulky. Říkáte, slovník, to je název mé proměnné, = "Hash.new". A pak slovník ["foo"], a když jsem přidat foo do mého hash tabulky, jsem Jen říkám foo je tam. A pak když jsem chtěl zjistit, jestli foo tam byl, jen říkám, pokud slovník ["foo"] == true return true. Whoa, a to je vaše hash tabulky. To je implementace z tabulky hash v Ruby. Takže každý si přál, aby mohl mít použít něco jako Ruby za poslední týden pset, že jo? Máme všechny druhy důvodů, proč chtějí používat jazyk, jako je Ruby. Ruby má drahokamy. Gem je název pro druh knihovny v Ruby. Takže všechny druhy zajímavých funkcí které můžete mít, například, když jsem chtějí integrovat mé žádosti. To 2017 aplikace Harvard byla integrována na Facebooku. Takže byste mohli přihlásit, prostřednictvím Facebook, na app. Takže pokud se chystáte udělat, že nemáte muset starat o odesílání některých HTTP požadavek na Facebook, a čeká na odpověď, a nutí odpověď, a bla, bla, bla. Stačí stáhnout klenot, který dělá vše za vás. A pak se nemusíte starat o všechno. A pak spousta pomoci on-line, samozřejmě. Existuje mnoho, mnoho, mnoho webových stránek, které se chystáte, aby vám pomohl jak s Ruby a Rails. A to je spousta zábavy na kód. Právě proto, že můžete přestat se znepokojovat o těch ne tak zábavné problémů. Stejně jako v případě, že je něco malými písmeny nebo velká písmena, a proč je to dává vám segmentation fault, a můžete opravdu ponořit do velmi zajímavé věci. Chcete-li se ponořit do opravdu chladných problémů. Takže Ruby je stejně jako na C v jistém smyslu. Takže to nebude, že velkej skok skutečnosti. Takže dá, to je naše tisková aplikace v Ruby. Myslím, že byste mohli použít tisk příliš, ale klade je to, co každý používá. Takže jen dá "Hello World". Dalo by se, nebo jste nemohli mít závorka obkličovat "Hello World" tam. Stačí si jen vybrat, zda nebo nepoužívat to. A pak x = "1". While vypadá pěkně stejný. Je to jen má méně syntaxi. Je to trochu čistší trochu. A pak, pokud x> 25 puts "Big!" a ještě dá "malé ...". A je to docela C v tomto smyslu. Takže když se podíváte na to, že můžete přístup pravděpodobně rozumět vše, co se děje. Ale je to silnější. Silnější, protože víc než to, To může dělat věci nejsou, že - nějaký hackage trochu. V C jste nemohli udělat prostě se jednoho řádku. Například, klade: "Já jsem # {x}". To je jen syntaxe pro dal hodnotu odtud x, a netisknou znak x. V C byste měli udělat procent d, a pak dát do proměnné x po Čárka zde, nebo něco takového. A v Ruby je tam zkratka pro jen to, že. A dává to, je-li x> 3, takže můžete dal-li vše na jednom řádku. A pak seznam. Seznamy v C, jako pole, budete muset sledovat, jak velká je vaše pole je nebo jinak dostanete segmentaci chyba. Vaše pole je jen jeden typ. Takže je to buď pole poplatku nebo pole celých čísel. V tomto případě jsem vytvořil seznam tady, to je pole, které má jako první element je řetězec, John, a pak čtyři, dva - to jsou celá čísla. A pak jsem se jen přidat, seznam, Vlevo úhelník, levý Úhel držáku, tři. To znamená, že jen připojit něco na mém seznamu. Takže je to trochu zajímavější, protože pokud byste chtěli použít jako jen jednoduchý seznam čísel, byste mohli, naprosto. To je naprosto v pořádku. Stačí dát celá čísla tam. Ale pokud byste chtěli udělat něco, co je více přesvědčivé, že má jiné věci, která má - Já nevím, všechny druhy seznamů v tam, nebo jiné předměty, které jsou více zajímavé, můžete úplně dělat, že. Je to naprosto v pořádku. A pak, chcete-li iterovat seznam, můžete použít více C-ish druh přístupu. To je pro smyčce, můžete zahájit proměnnou, i = "1", nebo i = "0". A pak jdete, a iterovat, a získat všechny prvky. Ale můžete také použít více Ruby podobný přístup. To je jen jako list.each. To jen říkám, vraťte mi všechny prvky seznamu. A to s každým prvkem, volat elem. Takže je to jen název, který jsem dává každému prvku. A teď to bude opakovat pro všechny prvky, a elem, že to bude se tak, že se přístup že jediný prvek. Takže byste mohli úplně držet C přístup, ale to taky funguje. A to je přesně to samé, OK. A kromě toho, je to opravdu, rychlé integraci Ruby a HTML protože vy jste zájem ve webových aplikacích. HTML je určitě něco, co budete používat hodně. A zde, pokud byste chtěli, aby Ruby ve formátu HTML, začněte zde <%. To znamená, že zde začíná Ruby. A pak%>, něco jako PHP v tomto smyslu. Zde Ruby končí a pak můžete stačí dát váš, pokud sem. A pak mám nějaké proměnné user.logged_in. V Ruby, obvykle přidat ty, a to buď výslech značka nebo vykřičník značka, stejně jako bankovní charakteru, jen na druhu rozlišovat mezi našimi funkcemi. Ale stačí dát, že pro své vlastní dobro. Není to něco, co se změní něco ve funkčnosti. Takže stačí, aby mi připomněl, že toto je funkce - a funkce v Ruby, spíše než C, jak jsem již řekl, nepotřebují závorky. Takže přihlášen věc, která je funkce, to je metoda. Ale nemusíte explicitně nutné dát závorky tam. Takže jen s dotazem, zda uživatel je přihlášen, a v případě, že uživatel je přihlášen, nyní HTML začne znovu. Takže Vítejte a zde I vytisknout user.name. A to je vše. Tak to je docela rovně vpřed, jak integrovat Ruby s HTML. A prostředky, jak už jsem řekl, jsou všechny druhy zdrojů pro Ruby. Vy si to všechno vyhledat poté protože jak video, a diapozitivy, budou být k dispozici on-line. A teď pojďme do Rails. Kolejnice je láska. Kolejnice - takže Ruby je jeho jazyk. OK, stejně jako PHP, stejně jako Python. Je to jazyk na vysoké úrovni, ne jako C. C je střední, jazyk nízké úrovně v roce pocit, že Ruby nemusíte se starat o paměti přerozdělení, a ukazatele, a tyto druhy věcí. Ale Rails je to program, který byl napsán v Ruby. A používá Ruby, aby se to rámec, který pro vás být schopni stavět úžasné webové aplikace. Takže budete muset nejprve nainstalovat Ruby on váš stroj, ale většina strojů již mají, že. A pak nainstalovat lišty na něj. Budeme mluvit o tom později. A proč Rails? Takže MVC, že je to pohled modelu regulátor jsme si povídali o trochu bit, je všechno jednodušší, protože rozděluje věci, které jsou koncepčně odlišné na jiný části aplikace. Méně času stráveného na problémy s nízkou úroveň, znovu, a velmi, velmi populární právě teď. Takže pro všechny ty, kteří se zajímají o spuštění scény, nebo v něčem jako zahájení podnikání, a lidé na trhu s technologiemi, které jsou zahájení vlastního podnikání hned jsou opravdu, opravdu fanoušci Ruby on Kolejnice, protože je to tak rychle. Takže se můžete dostat něco nahoru a běh méně než jeden den, a to opravdu velmi přesvědčivé argument používat Ruby. A Rails 4.0 - teď je to velmi čerstvé z trouby. Takže Rails 4.0 - Myslím, že první vydání byl v březnu tohoto roku. A je to opravdu pěkné, že má všechno druhy nových, skvělých vlastností. Takže Ruby on Rails je rámec, který je neustále aktualizovány, aby se všechny nové technologie. Poprvé jsem se snažil používat Ruby on Kolejnice, jsem měl tento problém, protože jsem vytvořil svou první webovou aplikaci, a vypadalo to přesně takhle. Takže to vytváří všechny tyto soubory pro vy, a já jsem neměl tušení, co - Co je to? To vytvořilo všechny ty soubory, a jen já chtěl vytvořit jednoduchý program, jednoduché webové stránky HTML. A nemohl jsem ani nic dělat. Takže jsem byl trochu zahlceni. Ale to je jedna z věcí, které jednou vám pochopit, vše se stává tak mnohem jasnější. Takže nemusíte být přemožen první Pohled na to, co si vytvoříte na prvním místě. Takže to, co se stane, je Rails vytváří všechny tyto soubory. Takže jeden z toho je doc, dokumentace. Db, že to souvisí s databází. Lib, že se knihovny přihlásit. Veřejné, skript, a některé věci. Skoro vše, co se chystáte dělat starosti o je složka app, tam nahoře. To je složka, která obsahuje aplikace. Všechny ostatní soubory - některé z nich jsou důležité, a vy jste bude učit o tom později. Ale jsou tu jen pro obsahují rámce. Takže první kameny z domu vy se staví, OK? Ale složka app - To je opravdu důležitá. A složka app má majetek. Majetek je skoro všechno že se blíží. Obrázky například, vše, co je statický, že to bude ke stažení na vašich webových stránkách. Takže obrázky, JavaScript, CSS - tyto druhy věcí jsou aktiva. Regulátory - budeme hovořit o jaké jsou regulátory, modely, a pole v druhé. A pomocníci jsou funkce, které lze použít po celém kódu který vám pomůže udělat něco. Funkce, jako je přihlášen, pro Příklad - user.loggedin. To je funkce, která pravděpodobně jste mají použít ve všech částech vašeho aplikace. Takže si můžete dát něco jako že ve svém pomocníka. Odesílatelů - to je, pokud se chystáte poslat e-mail pro vaše uživatele, budete chcete používat poštovního klienta. A modely a pohledy, jedeme mluvit o tom, že právě teď. Takže pohled modelu regulátor, který je Základním kamenem Ruby on Kolejnice, a většina rámců dnes, abych byl upřímný. Takže opět jsme se oddělit všechny naše kódu do tří různých částí. Model - model je v podstatě databáze. To se zabývá věcí v databázi. Takže každá tabulka v databázi má odpovídající soubor v rámci modelu. Takže je to trochu tabulky pro uživatele. Takže ukládání informací, jako uživatelské jméno, jejich e-maily, jejich adresa, jejich hesla, a podobné věci. Budeš mít jeden soubor Model s názvem uživatele rb - rb pro Ruby. A tam budeš mít všechno metod a proměnných. Proměnné budou odpovídat na uživatelské jméno, e-mailu a vše. A budete mít metody. To bude něco, o - budete zpracovávat informace v databázi. Chcete-li vytvořit model s Rails, stačí použít Rails vytvářet. A vytvářet věci v Rails, vás skutečně potřebují terminál. Takže je to velmi terminál na základě rámce. Stačí se přihlásit do terminálu, a to Rails, generování modelu. A název modelu je uživatel. A já jen chci mít dvě proměnné, dva sloupce, v mém stole. Tak to je e-mail. E-mail je typu string. Heslo, heslo je také typ string. To jsou jen dvě věci. Je to trochu zjednodušující uživatelské tabulky. Ale vy jste mohli zcela dát stovku věc je, že pokud jste chtěli. A Rails také dělá to velmi, velmi jednoduché, aby všechny druhy databázových vztahů. Takže většinou, když máte tabulek ve vaší databáze, že to není moc nezávisle jeden na druhém. Pojďme přemýšlet o tom. Chcete-li nakupovat a prodávat výrobky on-line. OK, takže máte webové stránky, kde se Chcete nakupovat a prodávat výrobky. Takže každý uživatel má mnoho produktů, které Tento uživatel je ochoten prodat. A každý uživatel má také mnoho transakcí které probíhají, nebo něco takového. A transakce jsou s jiným uživatelem. Každá transakce patří ke dvěma různým uživatelům. Uživatel, který kupuje a Uživatel, který prodává. Takže to jsou tzv. Databáze vztahy. A zde máme přesně ty klíčová slova, má mnoho a patří. To jsou ty nejdůležitější. A ty jen tak říct, pro příklad, toto je příklad Model na 2017 stránkách Harvard. Opět platí, že studenti zde - každý student na webových stránkách, student je model, je databázová tabulka. Každý student měl mnoho knih, protože vám by se říci, jaké jsou vaše oblíbené knihy, vpravo. Takže každá kniha patří do student tady dole. A atribut přístupný - to je jen říkám, ty jsou proměnné. To jsou proměnné přístupné z tohoto modelu. A proměnné jsou autorem kniha, popis, žánr, a název knihy. Takže jen informace o knihu. A tady mám metodu, která prostě třídí všechno. Takže definovat a skončí tady, to je jen řekl, tady je můj způsob. Self.sorted_all. To je jen, dej mi všechno řazeny, a to jak implementovat třídění algoritmus, což je poměrně snadné. Ale v podstatě je to, jak Model vypadá, OK. Má někdo nějaké otázky týkající se Tato databáze věc? Vztahy? Je to jasné? Ano. DIVÁKŮ: Umíš řadicí algoritmus? GABRIEL GUIMARAES: řadicí algoritmus, OK. Když si zvyknete na syntaxe Ruby, to bude jasné. Ale v podstatě, elems je Book.all. Takže kniha je název mého modelu. Při vytváření modelu je dodáván s všechny druhy pěkné metod pro vás. Takže dot.all je metoda, která vrátí všechny knihy. Ale najít, například, by vyhledat jedna kniha a vrátit tu knihu, nebo něco takového. A tak elems je všechno. A já jen říkám elems.sort. Třídit je vestavěný Ruby funkce. A to ab. Tak to se opět - budete třídit. Ale budete mít Tento argument pro mě. A argument, používá - to je jeden z tvrdší věci v Ruby ve skutečnosti, to věc. Ale jakmile pochopíte, to vše přijde velmi, velmi intuitivní. Takže ab, to říká o místo držáky, které budu používat - jako proměnné budu používat, jsou bude volána a b. A to jsou ty knihy. Takže, protože druh potřebuje k porovnání prvky, pamatujte, že? Takže když budete třídit věci, vás porovnání dvou prvků. Chystám se říct, že pokaždé, když budete srovnávat - takže to znamená, že jsem kolem třídit argument. A argument je všechno od dělat, aby i tady, OK? A tento argument, je jen říkám třídit jak pro porovnání. Seřadit bude fungovat tady, ale je to by se v porovnání s jejich výchozí porovnávání algoritmus. Chci, aby to srovnat velmi specifické způsobem, zejména, když kniha byl vytvořen, když každý Kniha vznikla. Takže říkám, říkají, název první Kniha je a název Druhá kniha jako b, chci nějak třídit něco, co na základě této b.created_at divný symbol, a.created_at. A ten divný symbol je zkratka pro, pokud je větší než ostatní, vrátí 1. Jestliže jeden se rovná ostatní, vrátí nulu. Jestliže jeden je menší než ostatní, návrat minus 1. Takže to je to, co ten divný symbol. Ale to není důležité. Myslím, že to, co chci, vy dostat Nyní je myšlenka, že databáze - můžete mít model tam. Takže nemusíte mít strach o připojení a pomocí příkazu SQL, a podobné věci. To může také vytvořit dveře SQL injekce a vše druhy bezpečnostních problémů. V tomto případě, nemusíte obávat, že. Stačí použít metody, jako book.all. A, že v pozadí samozřejmě se chystá do databáze, a to bude používat příkaz SQL aby všechny knihy. Ale nemusíte se obávat, že. To je stánek s jídlem, OK? A když budete mít prohlášení belongs_to jako je tato, to znamená, že až budete mít knihu objekt, vás můžete vidět, co je jeho studentem. Takže, které má student tuto knihu? Takže můžeme jen použít book.student, a který vám dává to, co je student. A je to opravdu mají mít. OK, teď pohled. Takže model je to, co ovlivňuje s databází, jo? Pohled je v podstatě HTML, a CSS, a některé JavaScript. A to je to, co uživatel vlastně vidí. Uživatel se nebude viz databáze. Chce se podívat na nějaké údaje z Databáze vložený v prohlížeči. Ruby on Rails to dělá opravdu jednoduché, aby pole. Za prvé proto, že už to vytváří pro vás, po vybalení z krabice, rozvržení. Rozložení je v podstatě něco, co - pokud všechny vaše stránky mají logo na vrcholu a já nevím, nějaké nabídky nebo něco takového, že všechny vaše stránky podíl na společné, pak nemusíte je třeba vytvořit mnoho, mnoho, mnoho HTML soubory, kde jsou všechny soubory mají, že stejný kód HTML. Myslím, že je to hloupé, protože jste právě opakování kódu mezi různými soubory. To rozhodně není dobrý přístup. Takže Ruby on Rails vytváří tento layout pro vás. A to je jen říkám, všechny mé stránky budou mít tento HTML, tuto hlavu Název tady, a ty jsou stylů link tag. Zapojte zde všechny mé CSS. Zapojte zde všechny mé JavaScript a některé meta tagy. To je prostě něco, co se to automaticky za vás. A pak, nakonec hlavu, nyní Zde začíná tělo. A teď je to můj skutečný obsah. Takže když jsem chtěl dát něco jako, Nabídka tady, tak bych dal to přímo nad toto místo, nebo něco takového, tak, že všechny mé stránky sdílel. Takže rozložení je sdílená všech stránkách. Teď, když výnos tady jen říká, no ohledu na to, jaké stránky to je in, jen zapojte obsahu, který Stránka tady, OK? A teď je to, například, Obsah jedné straně, že to bude zapojen do tohoto výnosu prohlášení automaticky Rails. Ale to je rozložení sdílené všech stran. A to je příklad jedné stránce. A to je přesně to stránka , který uvádí všechny knihy. Tak to je základní HTML tabulky do horní. Takže seznam knih, název, autor, popis, žánr. A tady jsme použít znovu, někteří Syntaxe Ruby, @ books.each-- @ Druhu říká, že proměnná je globální v tom smyslu. Protože tato proměnná byla ve skutečnosti prohlásil v regulátoru, který budete hned vidět. Ale jen brát za samozřejmost, že tento @ Knihy je proměnná, která je seznam všechny knihy. Takže books.each, to, a znovu, je to jen říkám, jak to chcete pojmenovat každý z iterátory, takže nemáme muset starat o čtyři, int i bla, bla, bla. Právě jsme se každý z prvky a jejich použití. Tak tohle je kniha, a pak už jen vytisknout zde. book.title, book.author, book.description, a bla, bla, bla. A tady je link_to. Takže link_to je jen tag link že uživatel může kliknout na a jde na jinou webovou stránku. Link_to, ukazují, že konkrétní knihu. Takže v případě, že uživatel je velký zájem tato kniha, pak můžete kliknout na show. Nebo klikněte na upravit, pokud chce upravit knihu. Nebo zničit, pokud chce odstranit Kniha z databáze. OK, to má smysl? Dobrá. A konečně, regulátor. Takže v podstatě je regulátor rozhraní mezi modelu a view. Takže model je součástí vaší Kód, který má databázi - každá tabulka v databázi má příslušný soubor v modelu, a tak dále. A jak se model a Pohled komunikovat? Tak, a to prostřednictvím řídicí jednotky. Co regulátor dělá, je, že je model pro něco jako, například, dát všechny knihy uvnitř proměnné. Jako je tento, @ knih. A to musí být globální s tímto na věc, protože to bude přístupné pohledu. Nebude to být použity v rámci samotný řadič. A to jen zpomaluje informace, které Pohled se bude používat. Například, zkontroluje regulátor pokud je uživatel online. A jak to udělat, že? Je to vlastně ptá model proto, že model má informace o uživateli. Má uživatelů tabulky, knihy, tabulka, ostatní tabulky. Takže regulátor se zeptá, zda uživatel je on-line. Pokud je uživatel online, regulátor zvládá věci, jako je uvedení cookie, nebo něco takového, aby razítko říci, že je uživatel online. Není třeba se znovu přihlásit. A bude to načíst proměnnou s názvem uživatel, například, že se pohled může použít. A pohled může dát něco tady, Například, vítejte user.name. Takže to bude říkat, vítejte John, vítejte James - něco jako, že jo? Takže všechny tyto proměnné použít v Pohled se bude vložen do řadič a bude vytáhl z modelu. To je příklad regulátoru. Takže máme v podstatě každý - nazýváme ty věci akcí. Takže index je akce. Je to funkce Ruby. Je to metoda Ruby tam. Ale pro volání regulátoru Tyhle věci žaloby. A každá akce se vztahuje na trase. Tak tady to cesta, například, Je Získejte údajů / knihy. Takže pokud jdete do harvard2017.com/books, co se stane, je tento kód bude volána. A tam je soubor - dovolte mi, abych otevřít tento opravdu rychle. Tam je soubor s názvem raw souborů. Není to otevřít. Takže tam je soubor s názvem souboru RAW který v podstatě odpovídá - oh, teď se to otevírá. Zde trasy. Takže v podstatě odpovídá napětí, aktivace / new například, aby něco v regulátoru. Takže tam je to ovladač s názvem aktivace regulátoru, ale tady, máme knihy, například. Takže zápasů - knihy / nové, k regulátoru knihy, nové opatření. Takže v podstatě velmi jednoduché věci. A tady, pokud byste měli dostat / knihy, lomítko ID knih, lomítko nový, se chystáte jít na to Metoda Ruby tam dole. Tak tady, co tento index se dělá právě načítá knihy protokol. To je něco, co - I přihlásit všechny knihy v protokolu. A třídit to všechno. Takže to bude návrat všechny tříděné knihy. To je opět v databázi. Tak to je metoda modelu. Viděli jste tento způsob je vytvořené v modelu. Teď je to jen načítá všechny knihy a uvedení, že v proměnné, která může být viděno pohledem. Protože nemůžeš, ve středu Váš HTML kód, nemůžete volat něco, co přímo z modelu, proto, že to ze dvou důvodů. Za prvé, z bezpečnostních důvodů, protože je to opravdu zajímavé, že načítání informací přímo do Každý HTML, který je v databázi. A za druhé, aby se vaše Kód opravdu organizovány. Tak přesně oddělit jednotlivé části. Takže BookLog.sorted_all, to v databáze a to se chystá uvést do proměnná @ knih. A teď tato proměnná je přístupná v kódu HTML. Takže stačí dát všechny knihy že stejně jako my, tady. To je proměnná. A návštěvy respond_to dělat | Formát |, je to jen druh syntaxe Ruby pro v případě, že uživatel se mě ptá na HTML kód, budu reagovat s HTML kódem. Pokud uživatel požádá mě s JSON kód, což je něco, co webové aplikace používat komunikovat mezi sebou, ale obvykle používají JSON, nebo nějaký jiný takové věci. Tak to prostě reaguje s použitím těch dva různé formáty. Ale pro běžné uživatele, tento nebudou muset být tady. Ty by jen reagovat HTML, a to je v pořádku. Takže se nemusíte bát, že opravdu hodně o tom. To je jediný řádek kódu v našem ovládání, jak je to načítání z HTML databáze, uvedení do něčeho, co je přístupné pohledu. A pak nový, takže zde Já vytváření knihy. Ale k vytvoření knihy, musím student protože musím vědět studenta jehož knihy to patří, že jo. Takže @ studenta = student. Student, opět začínáme s velký S je model studenta. OK, takže to je model student, to je model kniha log. Student.find, takže budu hledat Student pomocí parametrů ID. params.id, to se jen tak mi hodnotu tohoto ID, který byl předán - a URL. Jdu hledat pro tuto studenta. A první, jdeme na kontrolu v případě, že student má nějaké písně a bla, bla, bla. A to již zpracovává případ, kdy student neexistuje, například. A pak, jinak jsme jen reagovat na stejnou věc pomocí HTML. A pak se můžeme nechat uživatele vytvořit své písně. Tak tohle je nový. Nový se obvykle používá pro, ať uživatel vytvořit něco. A pak je tu akce vytvořit , který je obvykle používán k - skutečně dát písničky do databáze nebo něco takového. Ale jakmile začnete používat Rails, tyto věci se bude mnohem, mnohem jasnější. OK, v pohodě. Jakékoliv dotazy tak daleko? Má to smysl s regulátory, modely, pole - jo? Opět v Rails aplikaci - tak to vše lze nalézt zde. Takže máte aplikaci, řadiče, které jsou všechny mé regulátorů. Tak například, knihy ovládání. To je to, co jsme právě viděli. A pak zobrazení. A každý regulátor má spojené názor, že jo? Takže automaticky, když říkáš index zde, například, nebo pokud nazývají knihy nové, pak názor, knihy, nové se bude volána. Takže Rails dělá vše automaticky za vás. Takže každý regulátor je spojena zobrazení a všechny modely - tady mám jeden, dva, tři, čtyři, pět modelů. Ale to je model student, takže ti, jsou proměnné, které všechny studenti mají - lokalizace, datum narození. Studenti se trochu víc složitější, protože každý student má více jiný způsob spojená s ní. Ale to je jen manipulace tabulka, která měla všechny Studenti v databázi. A, OK, instalace Rails. Instalace Rails, abych byl upřímný, není ta nejjednodušší věc. Ale jakmile se dostanete přes všechno, je to velmi, velmi snadné. Takže instalace Rails, stačí jít na webové stránky, rubyandrails.org / download a postupujte podle jeho pokynů zde. Stáhnout vše. A můžete to udělat buď v Appliance, v CS50 spotřebiče, na Windows, na Mac, nebo jakýkoli provozní systém dle Vašeho výběru. Ruby on Rails běží na všechno. Jste již nainstalovali Ruby statistiky Pokud máte Mac nebo - ve spotřebiči Myslím, že Ruby je - Nejsem si jistý. A pak stačí jen tuto aplikaci nainstalovanou. A pokud si chcete vytvořit nový webová aplikace, stačí dělat Rails, nový, blog. Kolejnice, nové - Nevím - Název vašeho webu. A je to tak jednoduché. To bude vytvářet všechny ty, Soubory Jen jsem vám ukázal. Ale model, view, a Regulátor se nebude obydlený ještě. Ty prostě muset jít tam a naplnění těchto tří složek. Takže šance jsou, že chcete vytvořit model, například implementovat jednu modelovat jako první. Takže znovu, vždy se snaží kousnout menší kousky problému najednou. A pak řekněme, vytvořit model pro své uživatele. To je první věc, Máte-li uživatelům. Pak jsem si chcete vytvořit model stejně jako my tady ukázal. Kolejnice, vytvářet, model, uživatel, a poté e-maily string - my, které zde mají. A jen vytvořit ten model, ano. Rails vytvářet uživatelský model e-mail: string heslo: string. A pak vytvořit řadič , která se zabývá uživatelem. A můžete vytvářet nové uživatele a dělat ty různé věci. A pak můžete přejít na tvorbu zbytek vašich webových stránkách. Cool, otázky? Ano. DIVÁKŮ: [neslyšitelné] GABRIEL GUIMARAES: Ano, ano, určitě muset jít do pohledu. To je velmi dobrá otázka. Takže pohled na to, co vlastně obsahuje kód HTML. Takže to je to, co uživatelé se uvidí. Opět platí, že zde se jedná o příklad zobrazení. Má HTML kód a Ruby kód ve stejnou dobu. Takže Ruby kód je tam dát věci z databáze, například, , které byly naneseny na regulátoru. Tak, že proměnná @ knih, například, má všechny knihy a tabulky knihy v databázi. Zajistili jsme, že má v regulátoru. A pohled - Každý ze stránek mimo vaše webové stránky je bude mít jeden spojený pohled. Takže pokud jdete na domovskou stránku, první strana, harvard2017.com. To ukazuje jednu stránku. A pak jdete na lomítko profil. To půjde na regulátoru to je profil regulátor. A profil regulátor se děje aby vám pohled profilu. A pohled na profil bude vypadat něco jako toto, ale to bude mají informace o uživateli, a nikoli o knihách. Takže je to HTML kód a CSS, a těmi, věci, které vidí uživatel s Ruby kódu - že ve skutečnosti vytiskne věci z databáze. Je to jasnější? Doufám, že. Diváků: HTML kód se používá pro vlastně dělat webové stránky, které uživatel vidí, ale Ruby kód to, co dělá webové stránky pracovat? GABRIEL GUIMARAES: Kód Ruby dostane převedeny do formátu HTML. Takže to, co uživatel dostane je jen HTML, OK? Je to jen HTML. Tento book.title se chystá převést na hodnota book.title v HTML, OK. Tak to je vše, na serveru, a tak to záleží na tom, co knihy existují na serveru právě teď. Ale to, co server by okamžitě smyslem je pouze HTML kód, OK. Ale pohled dává jen rozvržení co HTML bude vypadat jako a jaké proměnné se bude. Tento druh tisku ven, OK. Tyto věci jsou v podstatě výtisků. Jdou k tisku proměnných, OK. Takže to, co je jen HTML, ty - autor, název, popis. To je statický obsah. To nebude měnit. To je prostě HTML kód. Ti, kteří jsou tiskové výstupy proměnných - věci, které jsou závislé. Skvělé, další otázky? Dobrý? Ano. DIVÁKŮ: Myslím, že jste dělali vše úpravy v jiném textu editační program. Měli bychom si také stáhnout, že? GABRIEL GUIMARAES: Jo, To se mi líbí textový editor nazvaný TextMate. A je to opravdu dobré. Je to dobře hodí pro Ruby. Je barvy věci velmi úhledně. Takže TextMate, T-E-X-T. Jdu dát, že drží na - Myslím, můžete použít gedit nebo cokoliv budete chtít. Ale to je specifická pro Mac, a to je opravdu čistý, protože to dá všechno soubory tam dole. A v Ruby on Rails, je nutné přepnout Soubory hodně. Takže je to mnoho, mnoho souborů jen přejít z jednoho souboru, přejděte na jeden soubor nebo jiný. Takže TextMate je velmi dobrá, ale existuje spousta venku. Další otázky? OK, ano? DIVÁKŮ: Je mobilní vývoj přes Ruby on Rails? GABRIEL GUIMARAES: jsem Slyšel věcí. Osobně jsem nepoužil je. Dalo by se výzkum o tom více. Nejsem si jistý, jestli je nějaká dobrá věc tam. OK, ano? DIVÁKŮ: [neslyšitelné] Gabriel Guimaraes: Ne Rails, Pravděpodobně Ruby pole. Otevřete okno terminálu a typ, "Ruby". Jo, možná, a pak jste stačí nainstalovat Rails. Ale pokud se chystáte instalovat nový Kolejnice 4,0, což vřele doporučuji, byste měli stáhnout Ruby 2.0. To je ta nová moc. A nové Rails 4.0 má něco opravdu cool, že to dělá na majetku. To se zabývá majetek. Aktiva jsou opět obrázky, CSS soubory, a soubory JavaScriptu. Takže je opravdu užitečná věc, že ​​Ruby on Kolejnice se pro vás všechny ty CSS soubory, které máte a vše - to jen svazky vše do jedné velký soubor, bez mezer nebo cokoliv, minimalizovat dobu, po kterou uživatel potřebuje stáhnout ten kód z vašeho serveru. Takže když vidíte ve vašem počítači, je to bude mít jako 15 CSS soubory. Nebo mnoho, mnoho různých CSS souborů. Ale na konci dne, co kolejnice automaticky se pro vás je to klade všechno dohromady do jednoho velkého souboru tak, že se minimalizuje čas požadavku. To je opravdu cool. Ano? DIVÁKŮ: [neslyšitelné] GABRIEL GUIMARAES: Přesně tak. Takže, integrace Google Maps. To je API JavaScript od Google. Tak jsem šel na webových stránkách Google. Mají to Google Maps API a já stáhnout kód a integrovat jej do mého pohledu. Takže to, co jsem potřeboval, aby tam dělat je, že jsem potřeboval dostat lokality z databáze. To bylo provedeno v regulátoru. Tak jsem šel do regulátoru - kde je regulátor. Regulátor vypadal takhle. Mám všechny lokalit studenti, dát to všechno do velké variabilní, velký seznam, který má všechny lokality. A v pohledu, protože JavaScript API je něco v pohled, ne? Vzhledem k tomu, JavaScript běží přímo ve Vašem HTML kód, to bude zaslána Stroj uživatele. A v pohledu, jsem nahrál všechno informace do Google API. A to všechno z toho pro mi, která je opravdu cool. Ale pokud chcete používat věci back-end, a to je jako knihovna, pro Například, opět - Integrace s Facebook účtem. To je něco, co mnoho, mnoho, mnoho aplikací používáte v současné době. Takže mít své integraci s Facebookem protože je to tak mnohem jednodušší přihlásit se s Facebook účtem než vytvořit účet a bla, bla, bla. Pak stačí použít drahokam, a to jak jednoduché, jak jít do svého drahokamu souboru. Gem soubor je soubor s názvem klenot soubor v zdrojový adresář vašeho Ruby on Kolejnice projektu. Prostě tam jdi a přidat nový klenot. A vy jste to najít na Google. Existuje mnoho, mnoho, mnoho drahokamů. Je tu ještě jedna, která se specificky dělá to pro Facebook integraci. Nejsem si jistý, co jméno to. Jen to Google, a vy jste bude to najít. OK, další otázky? Úžasné, děkuji, že jste přišli.