>> GABRIEL GUIMARAES: To je CS50.
Dobrodošli na Iznenađujuće Web Apps s Ruby on Rails.
Dakle, za svakoga tko je zainteresiran za web razvoja i izrade web stranica, web
aplikacije, Ruby on Rails je to nevjerojatna alat koji Twitter, GitHub,
Groupon, i sve vrste jako lijepo, i veliki, web aplikacije koriste u
u posljednjih nekoliko godina.
I to je stvarno, stvarno cool značajka, kul alat,
zato što je novo.
Dakle, to je sve novi snažan tehnologija ugrađena u jednu
okvir koji vam pomaže da se bave sve vrste nevjerojatne stvari.
>> No, ono što je okvir?
Dakle, okvir je u osnovi nešto što stvara -
kada pokrenete web stranice, ako ste započeli od nule, kao da ste otvorili
gedit postoji, a vi želite da kod svih HTML-a, i kod svih vaših
PHP, sve svoje CSS, sve od nule -
da baš će biti puno posla.
I okvir doslovno vam daje polovica web stranice već učinili.
Tako da počnete sa pola website da je sve tu za vas.
Poput veze baza podataka, a sve vrste stvari koje morate brinuti
o tome, ako ti to radiš od nule, ne morate brinuti o onima
Detalji niskoj razini.
>> No, danas ćemo izvoziti jedan od je web stranica koja debitantom
Klasa 2017 su vjerojatno upoznati.
Dakle, ovaj website je web stranica koja sam učinio za naš razred preko ljeta.
To je web stranicu na kojoj su studenti Klasa 2017 mogli prijaviti i
međusobno djeluju.
I onda je karta -
svatko, gdje su ljudi.
I imali smo knjigu igru, pjesme igru gdje smo vidjeli ljudi i pjesme
knjige ljudi.
Ono što oni vole čitati, što oni vole slušati.
I najzanimljiviji dio je da mi je doslovno uzeo tri sata
da kod sve to.
Jer ako sam morao učiniti sve što je od ispočetka, kao da otvara gedit, to
vjerojatno su se Me 20, 30 sati.
No, s Ruby on Rails, jer sve je već bio postavljen za mene,
samo mi je tri ili četiri sata, ili nešto slično.
>> Dakle, ono što je Ruby on Rails.
Ruby on Rails, opet kao što smo već rekao je okvir.
To je slika okvira.
Tako ćete se početi graditi Kuća, vi već imate polovicu
Kuća učinjeno.
To je okvir.
I Ruby on Rails je točno tako.
A ti bi trebao razmišljati o tome što je, što počnete web stranice, možete početi vaše web
Zahtjev, već imamo polovica od toga učinjeno postoji.
No, prije svega, što je Ruby?
Ruby on Rails koristi modela kontroler, koji je paradigma, koja
je doista zanimljivo -
i sve primjene danas koristiti nešto poput toga.
Ova ideja odvajanja stvari u tri dijela, modela, pogled, i
kontroler.
Idemo razgovarati malo više o tome kasnije.
>> Prvo, što je Ruby?
Dakle, ovo je Ruby.
A to je simbol jezik zove Ruby.
Ruby je jedan od prilično nov tumačiti jezika, pa pismu.
To je jezik koji nije sastavljen kao C. To je sastavio u bijegu.
Dakle, to je dobro, jer, baš kao i PHP, na primjer, također se interpretira, je
Ne sastavio.
To je dobro, jer mu je prenosiv.
Tako da samo prođe kod iz računala na drugo.
Od Linux stroj, na Windowsima stroj, na Mac ili Apple stroja, ili
nešto slično.
I ne morate se brinuti o pojedinosti u vezi svakog od specifičnih
operativne sustave.
Bit će to raditi posvuda.
>> A Ruby je jezik koji -
ti dečki vjerojatno sjetiti.
Ljudi koriste hash funkciju provodi u C hash tablici
prošli tjedan i imala sve vrste segmentacije grešaka.
I tada su se stvari ne brinući se o tome da li Taj niz i tamo, i niz
Ovdje, zapravo je malim slovima ili velika slova, ili ove vrste zabrinjavajući
Detalji niskoj razini.
Pa u Ruby, ako želite provesti hash tablicu, to je točno kako si
stvoriti hash tablicu.
Kažeš, rječnik, to je ime moje varijable, = "Hash.new".
A onda rječnik ["foo"], a kad sam dodajući Foo mom hash tablicu, ja sam
Samo kažem Foo je tu.
>> A onda, ako sam htjela provjeriti je li Foo bio tamo, ja samo kažem, ako
rječnik ["foo"] == true povratak istina.
Opa, i to ti je hash tablicu.
To je provedba od hash tablicu u Ruby.
Dakle, svatko poželio bi mogli imati koristi nešto poput Ruby za last
tjedan pset, zar ne?
Imamo sve vrste razloga da se žele koristiti jezik kao Ruby.
Ruby ima dragulja.
Gem je naziv za neku vrstu knjižnice u Ruby.
>> Dakle, sve vrste zanimljivih mogućnosti koji možete imati, primjerice, ako ja
žele integrirati svoju aplikaciju.
Taj Harvardu 2017 prijava je integriran u Facebook.
Dakle, moglo bi se prijaviti, putem Facebook, na cca.
Dakle, ako idete za to, ne znaš morate brinuti o slanju neke
HTTP zahtjev na Facebooku, a čeka za odgovor, i prisiljava
odgovor, i bla, bla, bla.
Vi samo preuzeti dragulj koji čini sve da za vas.
I onda ti ne trebaju brinuti o svemu tome.
>> I onda dosta pomoći online, naravno.
Postoje mnoge, mnoge, mnoge web stranice koje će vam pomoći kako s
Ruby i Rails.
I to je puno zabave u kodu.
Točno, jer možete prestati brinuti o tim nije tako zabavno problema.
Kao i ako je nešto mala ili velika slova, a onda zašto je to
dajući vam grešku segmentaciju, a zaista možete zaroniti u vrlo
Zanimljiva stvar.
Zaroniti u stvarno cool problema.
>> Dakle, Ruby je isto kao da se C u smislu.
Dakle, to neće biti tako velika skoka zapravo.
Tako kaže, to je naš print app u Ruby.
Mislim da bi mogao koristiti print previše, ali stavlja je ono što svatko koristi.
Dakle, samo stavlja "Hello World".
Mogla bi, ili ne može, ima zagrada okružuje
"Hello World" postoji.
Vi samo možete odabrati želite li ili ne koristiti.
A onda x = "1".
While petlja izgleda prilično velik dio isti.
To samo ima manje sintaksu.
To je vrsta čistač malo.
A onda, ako x> 25 stavlja "Big!" i drugi stavlja "mali ...".
I to je vrsta C u tom smislu.
>> Dakle, ako pogledate da, možete Pristup vjerojatno razumjeti
sve što se događa.
No, to je moćniji.
Snažniji, jer, više od toga, to može učiniti stvari nisu toliko -
nekakva hackage malo.
U C ne može učiniti u samo ne s jednom linijom.
Na primjer, kaže: "Ja sam # {x}".
Ovo je samo sintaksa za staviti vrijednost od X ovdje, a ne ispisati
lik x.
U C što je morao učiniti posto d, a zatim staviti varijablu x. nakon
zarez ovdje, ili nešto slično.
>> I u Ruby postoji stenogram za samo da radi.
I stavlja to, ako je x> 3, tako da možete staviti ako su svi na jednoj liniji.
I onda popis.
Popisi u C, kao i niz, morate pratiti koliko je velik vaš je polje ili
inače dobili segmentaciju kvara.
Vaš polje je samo jedna vrsta.
Tako da je bilo niz naboja ili niz brojeva.
U tom slučaju, stvorio sam popis ovdje, To je polje, koje ima prvi
element je string, John, a zatim četiri, dva - to su cijeli brojevi.
I onda sam samo dodati, popis, Lijevo kut nosač, lijevi
Kut Bracket, tri.
To znači samo dodati nešto na moj popis.
>> Dakle, to je vrsta zanimljiviji, jer ako ste htjeli koristiti kao
samo jednostavan popis brojeva, što ste mogli, potpuno.
To je sasvim u redu.
Samo stavite cijelih brojeva postoji.
Ali, ako ste htjeli učiniti nešto što je uvjerljiviji, da ima druga
stvari, da ima -
Ne znam, sve vrste lista u postoji, ili druge predmete koji su više
Zanimljivo, možete potpuno učiniti.
To je potpuno u redu.
A onda, ako želite ponoviti kroz Popis, možete koristiti
više C-ish vrsta pristupa.
To je za petlje, da pokrene varijabla, i = "1", ili i = "0".
I onda idete, i ponoviti, i dobiti sve elemente.
>> No, možete se također može koristiti to više Ruby poput pristup.
To je baš kao list.each.
To samo govori, vrati me svi elementi na popisu.
I to sa svakom elementu, zovu ih ELEM.
Dakle, ovo je samo ime koje sam daje svakom elementu.
A sada ovo će ponoviti za sve elementi, i Elem, što se događa
da se način na koji ćemo pristupiti da ni jedan element.
Tako da u potpunosti mogao držati C pristup, ali to radi previše.
I to je točno ista stvar, u redu.
>> A osim toga, to je stvarno, stvarno lako integrirati Ruby i HTML
jer ti dečki su zainteresirani u web aplikacijama.
HTML je definitivno nešto što idete koristiti puno.
A ovdje ako si htio staviti Ruby u HTML-u, samo početi ovdje, <%.
To znači, ovdje Ruby počinje.
A onda%>, vrsta kao PHP u tom smislu.
Ovdje Ruby završava, a zatim možete Samo stavite, ako ovdje.
I onda ja imam neke varijable user.logged_in.
U Ruby, mi obično dodati one, bilo Ispitivanje je marka ili usklik
Mark, poput lika banke, samo vrste
razlikovati našim funkcijama.
Ali ti samo stavi da za tvoje dobro.
To nije nešto što se mijenja ništa u funkcionalnosti.
>> Dakle, samo da me podsjeti kako je to funkcija - i funkcije u Ruby,
umjesto C, kao što sam već rekao, oni ne trebaju zagrade.
Tako da je prijavljeni stvar, to je funkcija, to je metoda.
Ali ne izrijekom trebaju stavi zagrade tamo.
Dakle, samo pita da li je korisnik prijavljen u, a ako korisnik je prijavljeni, sada
HTML započinje ponovno.
Dakle Dobrodošli, i ovdje Ja ispisati user.name.
I to je to.
Dakle, to je prilično ravno naprijed, kako integrirati Ruby s HTML.
I resursi, kao što sam rekao, postoje sve vrste sredstava za Ruby.
Vi dečki svi mogu pogledati ovo gore poslije jer oba videa i
natikače, idu na biti dostupan na internetu.
>> A sada idemo na šina.
Šina je ljubav.
Šine -
pa Ruby je njegov jezik.
OK, baš kao i PHP, baš kao i Python.
To je jezik visoke razine, a ne kao C. C je srednje, niske razine jezika u
Osjećaj da je Ruby ne moraju brinuti o memorije preraspodjele, a
pokazivače, i one vrste stvari.
Ali šina je ovo program koji napisan u Ruby.
I to koristi Ruby, kako bi se ova okvir, za vas biti u mogućnosti
izgraditi strašan web aplikacija.
>> Dakle, morate najprije instalirati Ruby na vaše računalo, nego da većina računala
već da.
A onda instalirati tračnice na vrhu.
Idemo razgovarati o tome malo kasnije.
A zašto šina?
Dakle MVC, to je prikaz modela kontroler razgovarali smo o tome malo
malo, čini sve što je jednostavnije, jer ona dijeli stvari koje su
konceptualno razlikuje u različite dijelovi vašeg zahtjeva.
Manje vremena proveo na probleme niske razine, Ponovno, i jako
popularni upravo sada.
Dakle, za sve one koji su zainteresirani za start up scena, ili u nečemu
kao što je pokretanje poslovanja, a ljudi u tehnološkom tržištu, koji su
započeti vlastiti posao upravo sada su stvarno, stvarno ljubitelji Ruby na
Šine, jer je to tako brzo.
>> Dakle, možete dobiti nešto gore i trčanje u manje od jednog dana, a to je
Stvarno vrlo uvjerljiv Argument za korištenje Ruby.
I Šine 4,0 -
to je vrlo svježe iz pećnice sada.
Dakle Šine 4,0 -
Mislim da je prvo izdanje bio je u ožujku ove godine.
I to je jako lijepo, to je sve vrste novih, cool značajke.
Dakle, Ruby on Rails je okvir koji je stalno ažuriraju imati sve
nove tehnologije.
>> Prvi put kad sam pokušao koristiti Ruby na Šina, imao sam ovaj problem, jer sam
stvorio svoj prvi web aplikacija, i izgledalo je točno tako.
Tako se stvara sve te datoteke za ti, i nisam imao pojma što -
Što je ovo?
On je stvorio sve te datoteke, a samo sam želio stvoriti jednostavan program,
Jednostavan HTML web stranice.
A nisam ni mogao ništa učiniti.
Tako sam bio malo osvaja.
No, to je jedna od stvari koje su nekoć vam Razumijem ga, sve postaje tako
mnogo jasnije.
Dakle, nemojte se osvaja po prvi put Prizor ono što ste stvorili u početku.
>> Dakle, ono što se događa je Rails stvara sve te datoteke.
Dakle, jedan od koje je doc, dokumentacija.
Db, koja je povezana s bazom podataka.
Lib, koje je knjižnica prijaviti.
Javno, skripta, a neke stvari.
Više-manje sve što ćeš brinuti o je app folder, tamo gore.
To je mapa koja sadrži Vaša prijava.
Sve druge datoteke -
Neki od njih su važni, a ti si će učiti o tome malo kasnije.
No, oni su samo ovdje da sadržavati okvir.
Tako da je prvi temelj kuće ti dečki su zgrade, OK?
>> Ali app folder -
to je jako važno.
I app folder ima imovinu.
Imovina je gotovo sve koje dolazi.
Slike za primjer, sve ono što je statična da će se skinuti
na svoju web stranicu.
Dakle, slike, JavaScript, CSS -
one vrste stvari koje su imovina.
Kontroleri -
ćemo govoriti više o ono što su kontroleri, modeli,
i polja u sekundi.
A pomoćnici su funkcije koje možete koristiti u cijelom kodu
će vam pomoći da učinite nešto.
Funkcionira kao prijavljeni, za Primjer - user.loggedin.
To je funkcija koja vjerojatno ste moraju koristiti u svim dijelovima
Zahtjev.
Tako možete staviti nešto poput koja u svom pomagač.
>> Okružnice -
to je, ako idete poslati e-mail za svoje korisnike, što
želite koristiti okružnice.
I modeli i pogleda, idemo razgovarati o tome da je upravo sada.
Dakle Pogled modela kontroler, to je Temeljni kamen Ruby na
Šina, i većina okviri danas, da budem iskren.
Pa opet, izdvojimo sve naše koda u tri dijela.
Model -
Model je u osnovi baza podataka.
Ona obrađuje stvari u bazi podataka.
>> Dakle, svaki stol u bazi podataka ima odgovarajuću datoteku unutar modela.
Dakle, to je vrsta stolom za svoje korisnike.
Dakle, ti si pohranu podataka kao što su korisničko ime, njihove e-mailove, njihova
adresa, njihove lozinke, i slične stvari.
Ti ćeš imati jednu datoteku u Model se zove korisnik rb -
rb za Ruby.
I tu ćeš imati sve metoda i varijable.
Varijable će odgovarati na korisničko ime, e-mail, i
sve.
>> A ti ćeš imati metode.
To će biti nešto u vezi -
ti ćeš nositi ove informacije u bazi podataka.
Za izradu modela sa šina, samo koristiti šina generiraju.
A za stvaranje stvari u šina, te zapravo potrebno terminal.
Dakle, to je vrlo terminal based okvir.
Vi samo prijaviti na terminalu, i ne Šine, generiranje modela.
A ime modela je korisnik.
A ja samo želim da se dvije varijable, dva stupca, u mom stolu.
Tako da je e-mail.
E-mail je tipa string.
Lozinka, lozinka i tip niza.
To su jedine dvije stvari.
To je vrsta pojednostavljenom tablicu korisnika.
Ali ti sigurno mogao staviti sto stvar je tu, ako ste htjeli.
>> I Šine također čini ga vrlo, vrlo jednostavno imati sve
vrste odnosa baze podataka.
Tako obično, kada imate tablice u baza podataka, oni nisu jako puno
neovisno jedan o drugom.
Razmislimo o tome.
Želite li kupiti i prodati proizvode online.
U redu, tako da imate web stranicu na kojoj žele kupiti i prodati proizvode.
Dakle, svaki korisnik ima mnogo proizvoda koji ovaj korisnik spreman prodati.
I svaki korisnik ima mnogo transakcija koji su u tijeku, ili
nešto slično.
A o transakcijama s drugog korisnika.
Svaka transakcija spada na dvije različite korisnike.
Korisnik koji ih kupuje i Korisnik koji se prodaje.
>> Dakle, to su takozvani baze podataka odnosi.
A ovdje imamo upravo one ključne riječi, ima mnogo i pripada.
Oni su najvažniji.
A ti samo reći, za Na primjer, ovo je primjer
Model na Harvardu 2017 web stranica.
Opet, studenti su u ovdje -
Svaki student na web stranici, student je model je tablica baze podataka.
Svaki student je imao mnogo knjiga, jer vam Moglo bi se reći, ono što su vaše omiljene
Knjige, zar ne.
Dakle, svaka knjiga pripada student ovdje.
I atribut dostupan -
da samo govori, one su varijable.
Oni su varijable dostupan iz tog modela.
A varijable autor Knjiga, opis, žanr, i
Naslov knjige.
Dakle, samo informacija se odnosi na knjigu.
>> I ovdje imam metodu koja jednostavno sortira sve.
Dakle, definirati i završiti ovdje, to je samo govoreći, ovdje dolazi moj način.
Self.sorted_all.
To je samo, daj mi je sve riješeno, te da je, kako se provode
sortiranje algoritam, što je prilično jednostavan.
Ali u osnovi, to je kako Model izgleda kao, u redu.
Ima li tko pitanja koja se tiču Ova baza podataka je stvar?
Odnosi?
Je li to jasno?
Da.
>> PUBLIKA: Možete li napraviti algoritam?
>> GABRIEL GUIMARAES: algoritam, u redu.
Kada se naviknete na Ruby sintakse, to će biti jasno.
Ali u osnovi, elems je Book.all.
Dakle, knjiga je ime mog modela.
Kada stvorite modela, to dolazi s sve vrste lijepih metoda za vas.
Dakle dot.all je metoda koja vraća sve knjige.
Ali naći, primjerice, bi tražiti jedna knjiga i vratiti tu knjigu, ili
nešto slično.
I tako elems je sve.
A ja sam samo rekao elems.sort.
Sortiranje je ugrađena u Ruby funkcija.
>> I, ne ab.
Dakle, to ne opet je -
idete za sortiranje.
Ali, ti ćeš dobiti ovaj argument za mene.
I argument koristi - to je jedan od Teže stvari u Ruby zapravo,
to stvar.
No, jednom kada ga shvatite sve dolazi vrlo, vrlo intuitivno.
Dakle, ab, ovo govori mjesto Nositelji da ću koristiti - kao
varijable Ja ću koristiti, su će biti pozvani i b.
A oni su knjige.
>> Pa zato vrsta treba usporediti elemente, sjetite se da?
Dakle, kada ste sortirati stvari, te usporediti dva elementa.
Ja ću reći da je svaki put idete uspoređivati ​​-
tako da je ovo, ja prolazu sortirati argument.
A argument je sve iz učiniti da i ovdje, u redu?
I ovaj argument, samo govorim vrsta kako to usporediti.
Sortiranje će raditi ovdje, ali to bi usporediti s njihovim
default uspoređujući algoritam.
Želim to usporediti u vrlo specifičan način, naime, kada je knjiga
nastao, kada je svaka Knjiga je stvorio.
>> Dakle, govorim, kažu ime prvog Knjiga je i naziv
Druga knjiga kao b, želim vrsta za sortiranje nešto na temelju b.created_at to
čudno simbol, a.created_at.
I to čudno simbol je stenogram jer ako je netko veći od
drugo, vratiti jedan.
Ako je jednak drugo, vratiti na nulu.
Ako je manji od drugo, povratak minus 1.
Dakle, to je ono to čudno simbol.
>> No, to nije važno.
Mislim, ono što želim ti dečki dobiti Trenutno je ideja da se baza podataka -
možete imati model postoji.
Dakle, ne morate brinuti o tome povezivanje i korištenje SQL,
i slične stvari.
On također može stvoriti vrata SQL injection i sve
vrste sigurnosnih problema.
U tom slučaju, ne znaš brinuti o tome.
Vi samo koristiti metode kao što su book.all.
I da, u pozadini, naravno, će se u bazu podataka, a to je
će se koristiti SQL da se sve knjige.
Ali vi ne morate brinuti o tome.
To je takeaway, OK?
>> A kad imate izjavu belongs_to ovako, to znači da
nakon što su knjige objekt, možete vidjeti što je njegov učenik.
Pa koji student ima ovu knjigu?
Dakle, mi samo možemo koristiti book.student, a koji vam daje ono što učenik.
I to je zapravo značajka da imaju.
>> OK, sada pogled.
Dakle model je ono što komunicira s bazom podataka, zar ne?
Pogled je u osnovi HTML, i CSS, a neki JavaScript.
I to je ono što je korisnik zapravo vidi.
Korisnik neće vidjeli svoju bazu podataka.
On će vidjeti neke podatke iz Baza podataka ugrađen u pregledniku.
Ruby on Rails ga čini uistinu jednostavno napraviti polja.
Prvo, zato što ga već stvara za vas, iz kutije, a izgled.
>> Raspored je u osnovi nešto što -
ako sve Vaše stranice imaju logo na vrhu i, ne znam, neki izbornik ili
nešto slično, da sve svoje stranice Udio zajedničko, onda ne
potrebno je stvoriti mnogo, mnogo, mnogo HTML slika gdje su sve datoteke koje imaju
Isti HTML koda.
Mislim da je to glupo, jer ti si samo ponavlja kod između različitih datoteka.
To definitivno nije dobar pristup.
>> Dakle, Ruby on Rails stvara ovaj izgled za vas.
I to samo govori, sve moje stranice će imati ovaj HTML, ovu glavu
naslov ovdje, a oni su style sheet veza tag.
Uključite se ovdje sve moje CSS.
Uključite se ovdje sve moje JavaScript i neke meta oznake.
To je samo nešto što se to automatski za vas.
A onda, na kraju glavu, sada Ovdje počinje tijelo.
A sad ovo je moj stvarni sadržaj.
Dakle, ako sam htjela staviti nešto poput: Izbornik ovdje, ja bih ga stavio pravo nad
Ovo mjesto, ili nešto slično, tako da su svi moji stranicama ga dijeli.
Tako izgleda je podijelio po svim stranicama.
>> Sada kada je prinos ovdje samo kaže, nema obzira na to što stranice je to u, samo
priključite u sadržaju koji stranica ovdje, u redu?
I sada je to, na primjer, Sadržaj jedne stranice koja će biti
uključen u ovaj prinosa izjave automatski šina.
No, to je izgleda zajedničko po svim stranicama.
I to je primjer jedne stranice.
I to je točno stranica koji sadrži popis svih knjiga.
Dakle, ovo je osnovni HTML tablica do vrha.
Dakle, popis knjiga, naslov, autor, Opis, žanr.
>> I ovdje koristimo, opet, neki Ruby sintakse, @ books.each--
@ Vrsta, kaže da je vaš promjenjiva je globalno u smislu.
Budući da ova varijabla je zapravo proglasio u kontroler koji
ti ćeš odmah vidjeti.
Ali samo uzeti zdravo za gotovo da je ova @ Knjiga je varijabla koja je popis
sve knjige.
Dakle books.each, ne, i opet, ovo je samo kažem kako želite nazvati
svaki od iterators, tako da mi ne morate brinuti o četiri, int i
bla, bla, bla.
Mi samo uzeti svaku od elementi i koristiti ih.
>> Dakle, ovo je knjiga, a onda samo za ispis ovdje. book.Title, book.author,
book.description, a bla, bla, bla.
I evo LINK_TO.
Dakle LINK_TO je samo karika tag koje korisnik može kliknuti na i
ide na drugu web stranicu.
LINK_TO, pokazuju određene knjige.
Dakle, ako korisnik je vrlo zainteresiran za ova knjiga, onda on može kliknuti na show.
Ili kliknite na edit, ako želi urediti knjigu.
Ili uništiti, ako želi izbrisati Knjiga iz baze podataka.
OK, to ima smisla?
Dobro.
>> Konačno, kontroler.
Tako je u osnovi kontroler sučelje između
model i pogled.
Dakle model je dio svoje kod koji ima bazu podataka -
svaka tablica u bazi podataka ima odgovarajuću datoteku u
modela, i tako dalje.
I kako napraviti model i Pogled u interakciji?
Dakle, kroz kontroler.
Što kontroler čini se da je Model za nešto kao što je, primjerice,
staviti sve knjige unutar varijable.
Kao što je ovaj jedan, @ knjigama.
>> I to treba biti globalna s ovim na stvar, jer to će biti
pristupiti pogledom.
To neće biti korišten u roku Sam kontroler.
I to samo usporava informacije koje Pogled će se koristiti.
Na primjer, provjerava kontroler ako je korisnik online.
I kako to učiniti?
On zapravo traži model jer model ima
informacija o korisniku.
Ona ima stol korisnicima, KNJIGE Stol, ostali tablice.
Dakle kontroler pita Korisnik je online.
Ako je korisnik online, kontroler ručke stvari poput stavljanja kolačić,
ili nešto slično, staviti pečat reći da je korisnik online.
Nema potrebe da se ponovno prijaviti.
>> I to će se učitati varijablu korisnik, na primjer, da se
Pogled može koristiti.
A pogled može staviti nešto ovdje, primjerice, dobrodošli user.name.
Dakle, to će reći, dobro došli John, dobrodošli James -
tako nešto, zar ne?
Dakle, sve te varijable koristi u Pogled će biti uložen u
kontroler i će biti izvukao se iz modela.
>> To je primjer kontroler.
Tako smo, zapravo, svaki -
nazivamo one stvari radnje.
Tako je indeks akcija.
To je funkcija Ruby.
To je Ruby metoda unutra.
Ali za kontroler pozive Te stvari radnje.
A svaka akcija vezana je uz put.
Pa evo ovaj put, na primjer, je get izjava / knjige.
Dakle, ako idete na harvard2017.com/books, što će se dogoditi je to kod
će se zvati.
>> A tu je sliku -
neka mi otvoriti ovaj jako brzi.
Tu je sliku nazvao RAW datoteka.
To ne otvara.
Dakle, tu je sliku nazvao sirovo sliku da je u osnovi odgovara -
oh, sad se otvara.
Evo, rute.
Tako je u osnovi podudara pritisak, aktivacija / novi primjer, da
nešto u kontroleru.
Dakle, tu je ovaj kontroler zove aktivacija kontroler, ali ovdje,
imamo knjige, na primjer.
Tako utakmice -
knjiga / new, na kontroleru Knjige, akcija novi.
Tako je u osnovi, vrlo jednostavan stvari.
>> I ovdje, ako ste morali dobiti / knjige, slash ID-knjigama, slash novi,
ćeš ići na to Ruby metoda tamo dolje.
Pa evo, ono što ovaj index radi samo učitava knjiga zapisnik.
To je nešto što -
Ja prijaviti sve knjige u zapisnik.
I sortirati sve.
Dakle, to će se vratiti svi poredani knjige.
To je, opet, u bazi podataka.
Dakle, ovo je metoda i modela.
Vidjeli ste ova metoda biti stvorena u modelu.
Sada je to samo učitava sve knjige i da je stavljanjem u varijablu koja
može se vidjeti po pogledu.
>> Zato što ne mogu, u sredini HTML kodu, ne možete nazvati
nešto izravno iz modela zbog dva razloga.
Prvo, iz sigurnosnih razloga, jer to nije stvarno zanimljivo biti
učitava podatke izravno unutar svaki HTML da je u bazi podataka.
I drugo, da bi se Kod jako organizirana.
Dakle, odvojite točno Različiti dijelovi.
Dakle BookLog.sorted_all, to je u baza podataka, a to će se staviti u
varijabla @ knjigama.
I sad je ta varijabla je dostupna u HTML kodu.
Dakle, možete samo staviti sve knjige postoje baš kao što smo mi, upravo ovdje.
To je varijabla.
>> I posjeta respond_to učiniti | format |, to je samo neka vrsta Ruby sintakse za
ako je korisnik me pita za HTML kod, ja ću
odgovoriti HTML koda.
Ako me korisnik pita s JSON koda, što je nešto što web aplikacije koriste
da komuniciraju između sebe, oni obično koriste JSON ili neki drugi
Takve stvari.
Pa to samo reagira pomoću onih dvije različite formate.
No, za normalan korisnika, ovaj Ne bi trebao biti ovdje.
Ti bi samo odgovoriti HTML, i to je u redu.
Pa stvarno ne brinuti da toliko o tome.
To je jedina linija koda u našoj Kontrola kao što je utovar iz HTML
baza podataka, stavljajući je u nečemu što je dostupna pogledom.
>> I onda novi, pa evo Ja sam stvaranje knjige.
No, za stvaranje knjige, trebam studenta jer moram znati studenta
čije knjige to pripadaju, zar ne.
Dakle @ student = student.
Student, opet, mi počinjemo s S velikim je model student.
U redu, tako da je ovo model student, to je model knjiga dnevnika.
Student.find, pa ću naći Student pomoću parametara ID.
params.id, ovo je samo bi mi vrijednost ovog ID koji je donesen -
i URL.
>> Samo će se tražiti da student.
I prvi put, idemo provjeriti ako student ima neke pjesme
i bla, bla, bla.
A to je već ručke slučaj kada je učenik
ne postoji, na primjer.
A onda, drugo, samo mi odgovorite na istu stvar pomoću HTML.
A onda možemo pustiti korisnik stvarati svoje pjesme.
Dakle, ovo je nova.
Novi se obično koristi za, neka Korisnik stvoriti nešto.
A tu je stvoriti akciju koji se obično koristi za -
zapravo staviti pjesme u bazi podataka ili nešto slično.
No, jednom kada počnete koristiti šina, te stvari će biti
mnogo, mnogo jasnije.
OK, ohladi.
Bilo kakva pitanja do sada?
Da li ima smisla s kontrolerima, modeli, polja -
Je li?
>> Opet u vašem Rails aplikaciju -
pa sve to može se naći ovdje.
Dakle imate app, kontrolere, one su svi moji kontrolera.
Tako na primjer, knjige kontrolirati.
To je onaj koji smo upravo vidjeli.
A onda pogleda.
I svaki kontroler ima povezana pogled, zar ne?
Tako se automatski kada se to zvati Indeks ovdje, na primjer, ili kada
to zovu knjige novu, onda pogled, Knjige, nova će se zvati.
>> Dakle šina sve radi automatski za vas.
Dakle, svaki kontroler je povezana pregled i sve modele -
Ovdje imam jedan, dva, tri, četiri, pet modela.
No, to je model učenika, tako da oni su varijable koje sve
studenti imaju - lokalizacija, datum rođenja.
Studenti se malo više komplicirano jer svaki student ima
više drugačiji način povezana s njom.
No, to je samo rukovanje stol koji je imao sve
učenici u bazi podataka.
>> A, OK, instalacija šina.
Instaliranje šina, da budem iskren, nije najjednostavnija stvar.
No, nakon što se posljednjih svemu, to je vrlo, vrlo jednostavno.
Dakle instalacija šina, samo idite na website, rubyandrails.org / preuzimanje
i slijediti njihove upute postoji.
Preuzmite sve.
A vi možete učiniti da se ni u Appliance, u CS50 Appliance, na
Windows, na Mac, ili bilo koji operativni Sustav po vašem izboru.
Ruby on Rails radi na svemu.
>> Tečajevi su ste već Ruby instaliran ako imate Mac ili -
u aparate mislim Ruby je -
Nisam siguran.
I onda samo trebate to instalira.
A ako želite stvoriti novi web aplikacija, samo
napraviti tračnice, novi, blog.
Šina, novi -
Ne znam -
ime vaše web stranice.
I to je tako jednostavno.
>> To će stvoriti sve one slika sam ti samo pokazao.
No, model, pogled, i Kontrolor ne će biti
još naseljena.
Samo ćeš se morati ići tamo i naseliti one tri mape.
Dakle, izgledi su, želite stvoriti model, primjerice, provesti jedan
model prvi.
Pa opet, uvijek pokušava ugristi manji komadići problem na vrijeme.
>> I onda, recimo, stvoriti Model za svoje korisnike.
To je prva stvar ako imate korisnicima.
Onda želim stvoriti model baš kao što smo pokazali ovdje.
Šina, generirati, model, korisnik, a zatim e-mail string - imamo to ovdje.
I samo stvoriti taj model, da.
Šine generirati korisnika modela e-mail: niz lozinka: Niz.
>> I onda stvoriti kontroler koja se bavi korisnika.
A možete stvoriti nove korisnike i to one vrste stvari.
A onda možete prijeći na stvaranje ostatak vaše web stranice.
Cool, pitanja?
Da.
>> PUBLIKA: [nečujan]
>> GABRIEL GUIMARAES: Da, da, ti definitivno morati ići u mišljenju.
To je jako dobro pitanje.
Dakle, pogled je ono što zapravo sadrži HTML-a.
Dakle, to je ono što je korisnik ćemo vidjeti.
Opet, ovdje je to Primjer prikazu.
Ima HTML koda i Ruby Kod istovremeno.
Dakle Ruby kod je tamo staviti stvari iz baze podataka, na primjer,
koji su stavljeni na kontroleru.
Tako da je varijabla 'knjigama, na primjer, ima sve knjige i tablice
knjiga u bazu podataka.
Napravili smo sigurni da je imao u kontroleru.
>> I pogled -
svaku od stranica off vaše web stranice je će imati jednu povezanu pogled.
Dakle, ako idete na početnu stranicu, Prva stranica, harvard2017.com.
To pokazuje jednu stranicu.
I onda ide da udarac profila.
To će ići na kontroler to je kontroler profil.
I kontroler profil ide da vam pogled profila.
A pogled na profil će izgledati nešto kao što je ovaj, ali to će se
imati podatke o korisniku, , a ne o knjigama.
>> Dakle, to je HTML kod i CSS i onih stvari koje korisnik vidi
s Ruby koda -
koji zapravo ispisuje stvari iz baze podataka.
Je li jasnije?
Nadam se.
>> PUBLIKA: HTML koda se koristi za zapravo napraviti web stranicu koja
korisnik vidi, ali Ruby kod ono što čini web stranice rade?
>> GABRIEL GUIMARAES: Ruby koda dobiva pretvaraju u HTML.
Dakle, ono što korisnik dobiva samo HTML, OK?
To je samo HTML.
Ovaj book.Title će pretvoriti u Vrijednost book.Title u HTML-u, u redu.
Dakle, ovo je sve u server, i tako to ovisi o tome što su knjige postoji
u poslužitelju upravo sada.
No, ono što poslužitelj odmah bi Osjećaj je samo HTML koda, OK.
>> Ali pogled samo daje izgled ono HTML je kako će izgledati
a što se varijable će biti.
Ovakav isprintati, OK.
Te stvari postoje osnovi ispisati izlasci.
Oni će ispisati varijable, u redu.
Dakle, što je samo HTML, one -
autor, naslov, opis.
To je statički sadržaj.
To se neće promijeniti.
To je samo običan HTML koda.
Oni su print izlasci varijable -
stvari koje ovise.
Cool, više pitanja?
Dobro?
Da.
>> Ivanković: Mislim da ste radili sve uređivanje u drugom tekstu
program za uređivanje.
Trebamo li i preuzeti to?
>> GABRIEL GUIMARAES: Da, ja to volim tekst editor zove TextMate.
I to je jako dobro.
To je dobro prilagođen za Ruby.
To boje stvari vrlo uredno.
Dakle TextMate, T-E-X-T. Idem staviti da je, drži se -
>> Mislim da možete koristiti gedit ili bilo što želite.
No, to je specifičan za Mac, a to stvarno uredno jer stavlja sve
datoteke tamo dolje.
I u Ruby on Rails, trebate prebaciti podnese puno.
Dakle, to je mnogo, mnogo slika samo idu iz jedne datoteke, skočiti na
jedne datoteke ili drugi.
Dakle TextMate je vrlo dobar, ali ima dosta vani.
Više pitanja?
U redu, zar ne?
>> PUBLIKA: Ima li mobilni razvoj kroz Ruby on Rails?
>> GABRIEL GUIMARAES: Nemam Čuo stvari.
Nisam ih koristi.
Ti bi mogao istražiti više o tome.
Nisam siguran da li postoji bilo kakav dobra stvar vani.
U redu, zar ne?
>> PUBLIKA: [nečujan]
>> Gabriel Guimaraes: Nije šina, Vjerojatno Ruby polje.
Otvorite prozor terminala i tip, "Ruby".
Da, vjerojatno, a onda samo morati instalirati šina.
Ali ako ćete instalirati novi Šine 4.0, koji sam visoko preporučiti,
trebali preuzeti Ruby 2.0.
To je novi previše.
I novi Rails 4,0 ima nešto stvarno cool da
to radi na imovinu.
Ona obrađuje imovinu.
Imovina opet su slike, CSS datoteke, i JavaScript datoteke.
Tako je jedan stvarno uredan stvar koja Ruby on Šine nema za vas je sve te CSS
datoteke koje ste i sve -
to samo snopovi sve gore u jednu velike datoteke, bez razmaka ili bilo što,
kako bi se smanjila vrijeme korisnik treba skinuti taj kod s poslužitelja.
>> Dakle, kada vidite na vašem računalu, to je će imati oko 15 CSS datoteke.
Ili mnogo, mnogo različitih CSS datoteke.
No, na kraju dana, što Šine automatski znači za vas je to stavlja
sve zajedno u jednu veliku datoteku tako da se smanjuje vrijeme zahtjev.
To je stvarno cool.
Da?
>> PUBLIKA: [nečujan]
>> GABRIEL GUIMARAES: Točno.
Dakle, integraciju Google Maps.
To je JavaScript API iz Googlea.
Tako da sam samo otišao na Google stranicama.
Oni su ovaj Google Maps API-ja i ja skinuti kod i integriran
u moj pogled.
Dakle, ono što sam trebao učiniti bilo je li potrebno da se
Mjesta iz baze.
To je učinjeno u kontroleru.
Tako sam otišao na kontroleru -
gdje je kontroler.
Kontrolor izgledao ovako.
Imaš sve mjestima učenika, stavi sve to na veliko
promjenjiva, veliki popis, koji ima sva mjesta.
>> I u pogledu, jer je JavaScript API je nešto u
vidjeli, zar ne?
Zbog JavaScript pokreće unutar HTML broj, to će biti poslana
korisnikovom računalu.
I u pogledu, opterećen sam sve to Informacije u Google API-ja.
I to je sve to za ja, što je stvarno cool.
No, ako želite koristiti stvari u back-end, i to je poput knjižnica, za
Primjerice, opet -
integracija s Facebookom.
To je nešto što je mnogo, mnogo, mnoge aplikacije koriste danas.
>> Tako su svoju integraciju s Facebookom jer je tako puno lakše samo
Prijavi se s Facebookom nego stvoriti računa i bla, bla, bla.
Tada ćete samo koristiti dragulj i to je kao jednostavan kao ide na vaš dragulj datoteku.
Gem datoteka je datoteka zove dragulj sliku u Izvor imenik svog Ruby na
Šine projekt.
Dovoljno je otići tamo i dodavati novi dragulj.
A ti ga pogledati na Googleu.
Postoji mnogo, mnogo, mnogo dragulja.
Ima jedan koji je posebno radi ovo za Facebook integraciju.
Nisam siguran što je naziv za to.
Samo ga Google i ti si će ga pronaći.
OK, više pitanja?
Strašan, hvala što ste došli.