>> GABRIEL GUIMARAES: Aquest és CS50.
Benvinguts al sorprenent Web Apps amb Ruby on Rails.
Així que per a qualsevol que estigui interessat en la web llocs web de desenvolupament i el seu marcat, web
aplicacions, Ruby on Rails és aquest eina increïble que Twitter, GitHub,
Groupon, i tot tipus de molt agradable, i gran, les aplicacions web estan utilitzant en
els últims anys.
I és una molt, molt fresc funció, una eina genial,
perquè és nou.
Per tant, té tot el nou i potent tecnologies incorporades en un
marc que l'ajuda a lluitar amb tot tipus de coses increïbles.
>> Però, què és un marc?
Així, un marc és bàsicament cosa que crea -
en iniciar un lloc web, si vostè va començar des del principi, igual que s'obre
gedit allà, i que desitja codificar tots del seu HTML, i el codi de la totalitat del seu
PHP, tot el teu CSS, tot des de zero -
això és només serà un munt de treball.
I un marc, literalment, li dóna mitjà de la pàgina web ja està fet.
Així que vostè comença amb la meitat d'un lloc web que té tot el que hi ha per a tu.
Igual que les connexions de base de dades, i tots tipus de coses que vostè ha de preocupar
sobre si ho estàs fent a partir de zero, vostè no ha de preocupar-se pels
detalls de baix nivell.
>> Però avui anem a exportar una de els llocs web que l'estudiant de primer any de la
classe de 2017 és probablement familiar.
Així que aquest lloc web és el lloc web que em ho va fer per a la nostra classe durant l'estiu.
Era un lloc web on els estudiants de la classe de 2017 podria iniciar la sessió i
interactuar entre ells.
I llavors aquest és un mapa -
tothom, on la gent està.
I vam tenir un llibre joc, un joc de cançons on vam veure les cançons de la gent i
els llibres de la gent.
El que els agrada llegir, el que a ells els agrada escoltar.
I la part més interessant de la mateixa és que, literalment, em vaig trigar tres hores a
per codificar tota.
Perquè si jo hagués de fer-ho tot, des zero, com l'obertura de gedit, es
probablement hauria pres em 20, 30 hores.
Però amb Ruby on Rails, perquè tot estava ja preparat per a mi,
només em va prendre tres o quatre hores, o alguna cosa per l'estil.
>> Llavors, què és Ruby on Rails.
Ruby on Rails, un cop més, com ja Dit això, és un marc.
Aquesta és una foto d'un marc.
Així que anem a començar a construir una casa, ja té la meitat de la
casa feta.
Aquest és el marc.
I Ruby on Rails és exactament així.
I cal pensar que és, de començar un lloc web, vostè comença la seva web
aplicació, ja tenim mitjà que es faci allà.
Però en primer lloc, quin és Ruby?
Ruby on Rails utilitza la vista del model controlador, que és paradigma, la qual
és un molt interessant -
i totes les aplicacions d'avui en dia servir alguna cosa com això.
Aquesta idea de separar les coses en tres parts, el model, la vista, i
el controlador.
Anem a parlar una mica més sobre això més endavant.
>> En primer lloc, quin és Ruby?
Així que aquesta és Ruby.
I aquest és el símbol de la llenguatge anomenat Ruby.
Ruby és un dels newish interpretats idiomes, de manera que l'escriptura.
És un llenguatge que no està compilat com C. Es va recopilar en la carrera.
Així que això és bo perquè, com PHP, per exemple, també s'interpreta, és
no compilat.
Això és bo perquè el seu portàtil.
Així que simplement passi el seu codi de una màquina a una altra.
Des d'una màquina Linux, un equip amb Windows màquina, a una màquina Mac o Apple, o
alguna cosa així.
I vostè no ha de preocupar-se per detalls respecte a cada un dels específica
sistemes operatius.
Es va a treballar a tot arreu.
>> I Ruby és un llenguatge que -
vostès recordaran aquestes.
La gent fa servir la funció hash implementat en C per a la taula hash
la setmana passada i tenia tota mena de violacions de segment.
I després les coses preocupant sobre si aquesta cadena i allà, la cadena i
aquí, va ser realment minúscules o majúscules, o aquest tipus de preocupant
detalls de baix nivell.
Bé en Ruby, si desitja implementar una taula hash, així és exactament com vostè
crear una taula hash.
Vostè diu, diccionari, aquest és el nom de la meva variable = "Hash.new".
I després diccionari ["foo"], i quan estic afegint foo al meu taula hash, estic
només dir hola, allà.
>> I després si jo volia comprovar si foo hi era, jo només dic que si
diccionari ["foo"] == true return true.
Vaja, i això és la seva taula hash.
Aquesta és l'aplicació de taula hash en Ruby.
Així que tothom desitjava que poguessin tenir usat alguna cosa com Ruby per al final
conjunt de processadors de la setmana, no?
Tenim tot tipus de raons per voler utilitzar un llenguatge com Ruby.
Ruby té gemmes.
Gem és un nom per a un tipus de la biblioteca de Ruby.
>> Així que tot tipus de característiques interessants que es pot tenir, per exemple, si jo
voler integrar la meva aplicació.
Això 2,017 aplicació Harvard es va integrar a Facebook.
Així, pots iniciar la sessió, mitjançant Facebook, a l'aplicació.
Així que si vostè va a fer això, no ho fa haurà de preocupar per l'enviament d'alguns
Sol · licitud HTTP a Facebook, i esperant per a la resposta, i obligant a la
resposta, i bla, bla, bla.
Només cal descarregar la joia que fa tot això per tu.
I llavors vostè no necessita preocupar-se de tot això.
>> I després un munt d'ajuda en línia, és clar.
Hi ha molts, molts, molts llocs web que se't va a ajudar tant amb
Ruby i Rails.
I és un munt de diversió en el codi.
Exactament perquè vostè pot deixar de preocupar sobre aquests problemes no tan divertides.
Igual que si alguna cosa és minúscula o majúscules, i llavors per què és això
que li dóna un error de segmentació i realment es pot bussejar al
coses interessants.
Per submergir-se en els problemes realment frescos.
>> Així que Ruby és igual a C, en un sentit.
Així que no serà que gran d'un salt en realitat.
Així que posa, això és la nostra aplicació d'impressió en Ruby.
Crec que es podria utilitzar d'impressió també, però posa és el que fa servir tothom.
Pel que només posa "Hello World".
Vostè pot, o no podia, tenir el parèntesi que envolta
"Hello World" allà.
Vostè només pot triar si o no d'usar que.
I llavors x = "1".
Un bucle while es veu molt gairebé de la mateixa.
Només té menys de sintaxi.
És una mica més net una mica.
I després, si x> 25 puts "gran!" i un altre posa "Small ...".
I és una espècie de C en aquest sentit.
>> Així que si ens fixem en això, vostè pot enfocament probablement entengui
tot el que està passant.
Però és més poderós.
Més potent, ja que, més que això, que pot fer les coses no són tan -
algun tipus de hackage una mica.
En C no es podia fer a acaba de fer amb una sola línia.
Per exemple, posa: "Jo sóc # {x}".
Aquesta és la sintaxi només per posar el valor de x aquí, i no imprimiu el
caràcter x.
En C que havia de fer el percentatge d, i a continuació, posar la variable x després de la
una coma aquí, o alguna cosa per l'estil.
>> I en Ruby hi ha una drecera per fer només això.
I posa això, si x> 3, pel que pot posar el cas en una sola línia.
I a continuació, una llista.
Llistes en C, com una matriu, han de no perdre de vista la mida de la seva matriu és o
d'una altra manera s'obté una segmentació criticar.
La seva matriu és només un tipus.
Així que ja sigui una matriu de càrrega o una matriu d'enters.
En aquest cas, he creat una llista aquí, això és una matriu, que té la primera
element és una cadena, John, i després quatre, dos - aquests són nombres enters.
I llavors jo afegeixo, llista, el Left Angle Bracket, Esquerra
Suport en angle, tres.
Això significa simplement annexar alguna cosa a la meva llista.
>> Així que és una mica més interessant perquè si vostè volia utilitzar això com
una simple llista dels nombres enters, vostè podria, totalment.
Això és totalment bé.
Només cal posar els nombres enters allà.
Però si vols fer alguna cosa que és més convincent, que té una altra
coses, que té -
No sé, tot tipus de llistes en allà, o altres objectes que són més
interessant, pot fer-ho totalment això.
És totalment bé.
I després si vols recórrer la llista, podeu utilitzar el
més tipus C-ish d'enfocament.
Això és per al llaç, li permet iniciar una variable, i = "1", o i = "0".
I després vas i iterar, i obtenir tots els elements.
>> Però també es pot utilitzar aquesta més enfocament Ruby-com.
Això és com un list.each.
Això és només dient: Fes-me tornar tots els elements de la llista.
I fer-ho amb cada element, trucar elem.
Així que això és només un nom que jo sóc donant a cada element.
I ara això va a repetir per a tots els elements i elem, va
ser la forma en què accedim que sol element.
Pel que podria totalment enganxar-se a la Enfocament C, però això també funciona.
I és exactament el mateix, a D'acord.
>> I a part d'això, és realment, molt fàcil d'integrar Ruby i HTML
ja que vostès estan interessats en aplicacions web.
HTML és definitivament una cosa que vostè va a utilitzar una gran quantitat.
I aquí si vols posar Rubí en HTML, acaba de començar aquí, <%.
Això significa, aquí Rubí comença.
I llavors%>, una mena de PHP en aquest sentit.
Aquí Rubí acaba i llavors es pot només cal posar el cas aquí.
I després tinc alguna variable user.logged_in.
En Ruby, en general els que afegim, ja sigui signe d'interrogació o d'exclamació
marca, com un personatge de banc, només per a tipus de
distingir entre les nostres funcions.
Però vostè acaba de posar que pel seu propi bé.
No és una cosa que canvia res en la funcionalitat.
>> Així que per recordar-me que aquest és un funció - i funciona en Ruby,
en lloc de C, com ja vaig dir, que no necessiten els parèntesis.
Perquè registra en cosa, això és una funció, que és un mètode.
Però vostè no necessita explícitament a posar els parèntesis en aquest país.
Així que simplement preguntant si l'usuari ha iniciat sessió en, i si l'usuari ha iniciat sessió en, ara
HTML comença de nou.
Així que benvinguda, i aquí Imprimeixo la user.name.
I això és tot.
Així que això és bastant senzill, com integrar Rubí amb el codi HTML.
I els recursos, com ja he dit, hi ha tot tipus de recursos per Ruby.
Vostès tots poden mirar això fins després perquè tant el vídeo, i
les diapositives, van a estarà disponible en línia.
>> I ara entrarem en Rails.
Rails és l'amor.
Rails -
pel que Ruby és el seu llenguatge.
Acceptar, com PHP, igual que Python.
És un llenguatge d'alt nivell, no com C. De C un mitjà, llenguatge de baix nivell en
el sentit que Ruby no has de preocupar de reassignació de memòria, i
punters, i aquest tipus de coses.
Però Rails és aquest programa que va ser escrit en Ruby.
I utilitza Ruby, per tal de tenir aquesta marc, perquè vostè sigui capaç de
crear aplicacions web impressionants.
>> Així que cal instal · lar primer Ruby on la seva màquina, però la majoria de les màquines
ia tenir això.
I a continuació, instal lar rails a la part superior de la mateixa.
Anem a parlar d'això més tard.
I per què Rails?
Així MVC, que és el model vista controlador parlem d'una petita
poc, fa que tot sigui més simple perquè divideix les coses que són
conceptualment diferent en diferents parts de l'aplicació.
Menys temps dedicat als problemes de baix nivell, de nou, i molt, molt
popular en aquest moment.
Així que per a tots aquells que estiguin interessats en l'escena de la posada en marxa, o en alguna cosa
com l'inici de negocis, i la gent en el mercat de la tecnologia que són
començar el seu propi negoci en aquest moment són molt, molt fans de Ruby on
Rails perquè és molt ràpid.
>> Així que vostè pot aconseguir alguna cosa en funcionament en menys d'un dia, i això és
realment un molt convincent argument per utilitzar Ruby.
I Rails 4.0 -
és molt fresc del forn ara.
Així Rails 4.0 -
Crec que la primera versió va ser al març d'aquest any.
I és molt bonic, té tot tipus de noves característiques interessants,.
Així que Ruby on Rails és un marc que és sent constantment actualitzat per tenir tota
de la nova tecnologia.
>> La primera vegada que vaig intentar utilitzar Ruby on Rails, jo tenia aquest problema perquè
creat la meva primera aplicació web, i era exactament així.
Així que crea tots els arxius per als vostè, i jo no tenia idea del que -
Què és això?
Va crear tots aquests arxius, i només volia crear un programa simple, una
simple pàgina web HTML.
I jo ni tan sols podia fer res.
Així que estava una mica aclaparat.
Però aquesta és una de les coses que una vegada que entén, tot es torna tan
molt més clara.
Així que no es aclaparat per la primera de vista el que es crea en un primer moment.
>> Així que el que passa és Rails crea tots aquests arxius.
Així que un d'això és doc, documentació.
Db, que està relacionat amb la base de dades.
Lib, que està log biblioteques.
Pública, l'escriptura, i algunes coses.
Gairebé tot el que vas a preocupar és de la carpeta d'aplicacions, allà dalt.
Aquesta és la carpeta que conté seva aplicació.
Tots els altres arxius -
alguns d'ells són importants, i ja està va a aprendre sobre això més endavant.
Però són aquí només per contenir el marc.
Així que els primers pilars de la casa que vostès estan construint, d'acord?
>> Però la carpeta app -
aquesta és la que realment és important.
I la carpeta d'aplicació té actius.
Actius és gairebé tot això ve.
Imatges per exemple, tot el que és estàtica que va a descarregar
al seu lloc web.
Així que les imatges, JavaScript, CSS -
aquest tipus de coses són actius.
Controladors -
parlarem més sobre Quins són els controladors, models,
i camps d'un segon.
I helpers són funcions que poden utilitzar tot el seu codi
per ajudar a fer alguna cosa.
Funcions com connectat, per exemple - user.loggedin.
Aquesta és una funció que probablement vostè ha d'utilitzar en totes les parts de la seva
aplicació.
Així que vostè pot posar alguna cosa com que en el seu ajudant.
>> Sobres -
això és si vostè va a enviar un correu electrònic als seus usuaris,
que vulgui utilitzar un programa de correu.
I els models i punts de vista, anem per parlar d'això ara.
Així que el model vista controlador, que és la pedra angular bàsica de Ruby on
Rails, i la majoria dels marcs avui en dia, per ser honest.
Així que de nou, separem tot el nostre codi en tres parts diferents.
El model -
el model és bàsicament la base de dades.
Maneja les coses a la base de dades.
>> Així que cada taula a la base de dades té un arxiu corresponent dins del model.
Així que és una espècie de taula per als seus usuaris.
Així que vostè està emmagatzemant informació com el nom d'usuari, el seu correu electrònic, el seu
direcció, la contrasenya, i coses per l'estil.
Vas a tenir un arxiu en el model anomenat rb usuari -
rb per Ruby.
I no tindràs tota dels mètodes i les variables.
Les variables van a correspondre al nom de l'usuari, el correu electrònic, i
tot.
>> I vas a tenir els mètodes.
Això serà quelcom relatiu -
vostè va a utilitzar aquesta informació a la base de dades.
Per crear un model amb Rails, només ha d'utilitzar Rails generen.
I per crear coses en Rails, que realment necessita el terminal.
Així que és una molt Terminal marc basat.
Vostè només ha d'entrar a la terminal, i què Rails, generen model.
I el nom del model és de l'usuari.
I jo només vull tenir dues variables, dues columnes, a la meva taula.
Així que això és de correu electrònic.
El correu electrònic és una cadena tipus.
Password, contrasenya és També una cadena tipus.
Aquestes són les úniques dues coses.
És una espècie d'una taula d'usuari simplista.
Però podries posar totalment d'un centenar de cosa està allà si volies.
>> I Rails també fa que sigui molt, molt simple tenir tot
tipus de relacions de bases de dades.
Així que en general, quan es té taules en el seu base de dades, no són molt
independents entre si.
Anem a pensar.
Vostè vol comprar i vendre productes en línia.
OK, així que vostè té un lloc web on es volen comprar i vendre productes.
Així que cada usuari té molts productes que aquest usuari està disposat a vendre.
I cada usuari també té moltes transaccions que estan en curs, o
alguna cosa així.
I les transaccions són amb un altre usuari.
Cada transacció pertany a dos usuaris diferents.
L'usuari que està comprant i l'usuari que s'està venent.
>> Així que aquests són els anomenats les relacions de bases de dades.
I aquí tenim exactament aquestes paraules clau, té moltes i pertany.
Aquests són els més importants.
I només direm, per exemple, aquest és l'exemple d'un
model en el 2017 el lloc web de Harvard.
Un cop més, els estudiants d'aquí -
cada estudiant al lloc web, l'estudiant és un model, és una taula de base de dades.
Cada estudiant tenia molts llibres perquè podria dir, quins són els seus favorits
llibres, és clar.
Així que cada llibre pertany a un estudiant d'aquí baix.
I atribuir accessible -
això és només dir, aquells són les variables.
Aquestes són les variables accessibles d'aquest model.
I les variables són l'autor de el llibre, la descripció, el gènere, i
títol del llibre.
Així que la informació en relació amb el llibre.
>> I aquí tinc un mètode que simplement ordena tot.
Així defineixen i acaben aquí, això és només dient, aquí ve el meu mètode.
Self.sorted_all.
Això és just, dóna'm tot ho ordena, i així és com s'implementa
l'algorisme d'ordenació, que és bastant fàcil.
Però, bàsicament, així és com un model s'assembla, a D'acord.
Algú té preguntes pel que fa a aquesta cosa base de dades?
Relacions?
Queda clar?
Sí
>> AUDIÈNCIA: Pot vostè fer l'algoritme d'ordenació?
>> GABRIEL GUIMARAES: El algoritme d'ordenació, a D'acord.
Quan t'acostumes a la sintaxi de Ruby, que serà clara.
Però, bàsicament, és elems Book.all.
Així que el llibre és el nom del meu model.
Quan es crea un model, es tracta amb tot tipus de bons mètodes per a vostè.
Així dot.all és un mètode que retorna tots els llibres.
Però trobar, per exemple, podria buscar un llibre i tornar aquest llibre, o
alguna cosa així.
I així elems és tot.
I només dic elems.sort.
Sort és una funció integrada en Ruby.
>> I, fer ab.
Així que això no és nou -
vostè va a ordenar.
Però vostè va a aconseguir aquest argument per a mi.
I utilitza l'argument - aquesta és una de les coses més difícils en Ruby en realitat,
Feu això cosa.
Però una vegada que ho entens tot ve molt, molt intuïtiu.
Així que l'ab, és a dir el lloc titulars que utilitzaré - com
les variables que utilitzaré, són serà cridat a i b.
I aquests són els llibres.
>> Així doncs espècie necessita comparar elements, recordeu que?
Així que quan s'ordena coses, comparar dos elements.
Vaig a dir que cada vegada vas a comparar -
així que això és, que estic passant per ordenar una discussió.
I l'argument és tot de tasques per i aquí, d'acord?
I aquest argument, s'acaba dient ordenar com comparar.
Ordenar funcionaria aquí, però és compararia amb el seu
defecte comparant algorisme.
Vull que es compara d'una manera molt específica manera, és a dir, quan el llibre
va ser creat, quan cada va ser creada llibre.
>> Així que dic, digui el nom de la primera llibre és A i el nom de la
segon llibre com b, vull sort per ordenar alguna cosa basat en b.created_at aquest
símbol estrany, a.created_at.
I aquest símbol estrany és l'abreviatura perquè si un és més gran que el
altra, retorna 1.
Si un és igual a la altra, tornar zero.
Si un és més petit que el un altre, el retorn almenys 1.
Així que això és el que aquest símbol és estrany.
>> Però això no és important.
Vull dir, el que jo vull que vostès ARRIBAR ara és la idea que la base de dades -
vostè pot tenir el model allà.
Així que vostè no s'ha de preocupar de connectar i utilitzar la instrucció SQL,
i coses per l'estil.
També pot crear portes a Injecció SQL i tots
tipus de problemes de seguretat.
En aquest cas, no ho fa preocupar-se per això.
Vostè només ha d'utilitzar mètodes com book.all.
I això, en el fons, és clar, va a la seva base de dades, i és
utilitzarà una sentència SQL per obtenir tots els llibres.
Però vostè no ha de preocupar-se per això.
Aquesta és el menjar per emportar, OK?
>> I quan vostè té una declaració belongs_to així, això significa que
una vegada que tingui un objecte llibre, pot veure el que és el seu alumne.
Així que l'estudiant té aquest llibre?
Així que només podem usar book.student i que et dóna el que l'estudiant és.
I això és una molt característica a tenir.
>> Bé, ara la vista.
Així que el model és el que interactua amb la base de dades, no?
La vista és bàsicament HTML, i CSS i una mica de JavaScript.
I això és el que l'usuari realment veu.
L'usuari no va a veure a la base de dades.
Ell va a veure algunes dades de la base de dades incrustada en l'espectador.
Ruby on Rails ho fa realment senzill de fer camps.
En primer lloc, perquè ja ho cregui per a vostè, fora de la caixa, un disseny.
>> Un disseny és bàsicament una cosa que -
si totes les seves pàgines tenen un logotip a la part superior i, no sé, una mica de menú o
cosa així, que totes les seves pàgines tenen en comú, llavors no ho fa
necessitarà crear molts, molts, molts HTML arxius on estan tots els arxius han de
mateix codi HTML.
Vull dir que és ximple perquè no ets més que la repetició de codi entre diferents arxius.
Això definitivament no és un bon enfocament.
>> Així Ruby on Rails crea aquest disseny per a vostè.
I això és només dir, totes les meves pàgines tindran aquest codi HTML, aquest cap
títol aquí, i els que són full d'estil etiqueta link.
Connecteu aquí tota la meva CSS.
Connecteu aquí tota la meva JavaScript i algunes etiquetes meta.
Això és una cosa que fer de forma automàtica per a vostè.
I després, acabar amb el cap, ara aquí comença el cos.
I ara, aquest és el meu veritable contingut.
Així que si jo volia posar alguna cosa com un menú aquí, jo ho posaria dret sobre
aquest lloc, o alguna cosa així, de manera que totes les meves pàgines compartides ella.
Així que el disseny és compartida per totes les pàgines.
>> Ara que el rendiment aquí només diu, no importa el que està en les pàgines d'aquest, simplement
endoll el contingut d'aquest pàgina d'aquí, d'acord?
I ara això és, per exemple, la contingut d'una pàgina que serà
connectat a aquesta declaració de rendiment automàticament per Rails.
Però això és un disseny compartit per totes les pàgines.
I aquest és un exemple d'una pàgina.
I això és exactament la pàgina que enumera tots els llibres.
Així que aquesta és una taula HTML bàsic fins superior.
Així que la llista de llibres, un títol, autor, descripció, gènere.
>> I aquí s'utilitza, un cop més, alguns Sintaxi Ruby, @ books.each--
@ Tipus de diu que la variable és global en un sentit.
Atès que aquesta variable era en realitat declarat en el controlador que
vas a veure ara mateix.
Però acaba de prendre per fet que aquesta @ Llibres és una variable que és una llista de
tots els llibres.
Així books.each, no, i de nou, això és Només dic, com vol anomenar
cadascun dels iteradors perquè nosaltres no fem ha de preocupar-se per un quatre, int i
bla, bla, bla.
Acabem de prendre cadascun dels elements i utilitzar-los.
>> Així que aquest és el llibre, i després només d'impressió aquí. book.title, book.author,
book.description, i bla, bla, bla.
I aquí hi ha una link_to.
Així link_to és només una etiqueta d'enllaç que un usuari pot fer clic ai
va a un altre lloc web.
Link_to, mostrar aquest llibre en particular.
Així que si l'usuari està molt interessat en aquest llibre, a continuació, pot fer clic al xou.
O feu clic a Edita, si vol per editar el llibre.
O destruir, si vol esborrar el llibre de la base de dades.
Bé, això té sentit?
Bé.
>> Finalment, el controlador.
Així que, bàsicament, el controlador és la interfície entre el
model i la vista.
Així que el model és la part del seu codi que té la base de dades -
cada taula de la base de dades té un arxiu corresponent al
model, i així successivament.
I com fer el model i l'opinió d'interactuar?
Així, a través del controlador.
El que un controlador que fa és que la model per a alguna cosa com, per exemple,
posar tot el llibre en l'interior d'una variable.
Igual que aquest, @ llibres.
>> I ha de ser global amb aquest pel que pel fet que serà
visitada per la vista.
No serà utilitzat dins el propi controlador.
I només retarda la informació que la vista es va a utilitzar.
Per exemple, el controlador comprova si l'usuari està en línia.
I com es fa això?
Es demana realment el model perquè el model té la
informació sobre l'usuari.
Té una taula d'usuaris, els llibres taula, altres taules.
Així que el controlador li pregunta si l'usuari està en línia.
Si l'usuari està en línia, el controlador maneja les coses com posar una galeta,
o alguna cosa així, per posar el segell vol dir que l'usuari està en línia.
No hi ha necessitat de tornar a iniciar sessió.
>> I es va a carregar una variable anomenada usuari, per exemple, que el
la visió pot utilitzar.
I la vista pot posar alguna cosa aquí, per exemple, donar la benvinguda user.name.
Pel que dirà, benvingut John, benvingut James -
cosa així, oi?
Així que totes aquestes variables utilitzades en el vista seran carregat a la
controlador i seran aixecat a partir del model.
>> Aquest és l'exemple d'un controlador.
Així que tenim, bàsicament, cada un -
anomenem a aquestes accions les coses.
Així índex és una acció.
És una funció Ruby.
És un mètode de Ruby en aquest país.
No obstant això, per a les trucades del controlador aquestes accions les coses.
I cada acció està relacionada amb una ruta.
Així que aquí aquesta ruta, per exemple, és una Veure Declaració / books.
Així que si vas a harvard2017.com/books, el que va a succeir és que aquest codi és
serà anomenat.
>> I hi ha un arxiu -
m'ho dius a mi obro aquest molt ràpid.
Hi ha un arxiu anomenat arxiu RAW.
No és l'obertura.
Així que hi ha un arxiu anomenat arxiu RAW que coincideix bàsicament -
oh, ara s'està obrint.
Aquí, rutes.
Així que bàsicament coincideix amb un cep, activació / new per exemple, per
alguna cosa al controlador.
Així que aquest controlador de trucada controlador d'activació, però aquí,
comptem amb els llibres, per exemple.
Així que els partits -
llibres / nova, el controlador els llibres, l'acció de nou.
Així que, bàsicament, molt senzill coses.
>> I aquí, si ha d'arribar / llibres, retallar l'ID dels llibres, barra nova,
vostè va a anar a aquest Mètode de Ruby allà baix.
Així que aquí, el que aquest índex està fent s'acaba de carregar log llibre.
Això és una cosa que -
Em connecto tots els llibres en un registre.
I ordenar tot.
Així que això va a tornar tots els llibres ordenats.
Això és, de nou, a la base de dades.
Així que aquest és un mètode del model.
Vostè va veure que aquest mètode és creat en el model.
Ara bé, això s'acaba carregant tots els llibres i posar que en una variable que
es pot veure per la vista.
>> Perquè no es pot, enmig de el codi HTML, no es pot anomenar
alguna cosa directament a partir del model, perquè per dues raons.
En primer lloc, per raons de seguretat, ja en realitat no és interessant estar
carregar la informació directament a l'interior cada HTML que està a la base de dades.
I en segon lloc, per mantenir la seva codi molt organitzat.
Així separar exactament el diferents parts.
Així BookLog.sorted_all, aquesta en el base de dades i això es posarà en
una variable @ llibres.
I ara aquesta variable accessible dins del seu codi HTML.
Pel que només pot posar tots els llibres no tal com ho vam fer, aquí mateix.
Aquesta és la variable.
>> I les visites respond_to fer | Format |, això és només una espècie de sintaxi Ruby
si l'usuari em demana El codi HTML, que vaig a
respondre amb codi HTML.
Si l'usuari em demana amb codi JSON, que és una cosa que les aplicacions web utilitzen
per comunicar-se entre si, que sol utilitzar JSON o algun altre
tipus de coses.
Per tant, només respon utilitzant els dos formats diferents.
Però per a un usuari normal, aquesta no hauria de ser aquí.
Vostè acaba de respondre amb HTML, i això està bé.
Així que en realitat no es preocupen que molt sobre això.
Aquesta és l'única línia de codi en el nostre control que s'està carregant d'HTML
base de dades, posada en una cosa que és accessible per la vista.
>> I llavors nova, així que aquí Estic creant llibres.
Però per crear llibres, necessito un estudiant perquè necessito saber l'estudiant
els llibres pertany això, és clar.
Així @ estudiant = Estudiants.
Estudiant, de nou, estem començant amb una gran S és l'alumne model.
OK, així que aquest és l'estudiant model, aquest és el llibre de registre de model.
Student.find, així que em vaig a trobar un estudiant utilitzant l'ID de paràmetres.
params.id, això se m'acaba d'obtenir el valor d'aquesta ID que s'ha passat -
i la URL.
>> Només vaig a buscar a aquest estudiant.
I en primer lloc, anem a comprovar si l'estudiant té algunes cançons
i bla, bla, bla.
I això ja s'encarrega de la cas en el qual l'estudiant
no existeix, per exemple.
I després, una altra cosa, només responem al mateix fent servir HTML.
I després podem permetre que l'usuari crear les seves cançons.
Així que això és nou.
Nova s'utilitza generalment per, i molt l'usuari a crear alguna cosa.
I després hi ha l'acció create Aquest sol ser usat per -
realment posar les cançons a la base de dades o alguna cosa per l'estil.
Però una vegada que comenci a utilitzar Rails, les coses seran
molt, molt més clara.
Bé, refredar.
Qualsevol pregunta fins ara?
El que té sentit amb els controladors, models, camps -
¿Si?
>> De nou en la seva aplicació Rails -
de manera que tot això es pot trobar aquí.
Pel que té aplicació, els controladors, els són tots els meus controladors.
Així, per exemple, les cartilles de control.
Aquest és el que acabem de veure.
I a continuació, vistes.
I cada controlador té una vista associat, oi?
Així que de forma automàtica quan es diu a aquest índex aquí, per exemple, o quan es
cridar això els llibres nous, llavors la vista, llibres, nou serà anomenat.
>> Així Rails ho fa tot automàticament.
Així que cada controlador té un associat veure i tots els models -
aquí tinc un, dos, tres, quatre, cinc models.
Però aquest és un model d'estudiant, de manera que aquells són les variables que tots els
els estudiants tenen - localització, data de naixement.
Els estudiants són una mica més complicat perquè cada estudiant té
mètode més diferents associada a ella.
Però això és només el maneig de la taula que tenia tota la
estudiants a la base de dades.
>> I, d'acord, la instal · lació de Rails.
Instal · lant Rails, per ser honest, No és la cosa més simple.
Però una vegada que passes tot, és molt, molt fàcil.
Així que instal · lar Rails, que acaba d'anar a la lloc web, rubyandrails.org / descàrrega
i seguir les seves instruccions.
Descarrega tot.
I vostè pot fer això ja sigui en Appliance, al CS50 Appliance, en
Windows, a Mac, o qualsevol operació sistema de la seva elecció.
Ruby on Rails s'executa en tot.
>> El més probable és que vostè ja ha instal · lat Rubí si vostè té un Mac o -
en els aparells Crec Ruby és -
No estic segur.
I a continuació, només ha instal · lat.
I si vol crear un nova aplicació web, només
fer Rails, nou, bloc.
Rails, noves -
No sé -
el nom del seu lloc web.
I és així de simple.
>> Es crearà tots els arxius que acabem de mostrar.
Però el model, la vista i l' controlador no seran
encara poblada.
Només hauràs de anar-hi i poblar aquestes tres carpetes.
Així que les probabilitats són, vostè vol crear un model, per exemple, posar en pràctica una
modelar primer.
Així que de nou, sempre tractant de mossegar a menor bits d'un problema alhora.
>> I després direm, crear un model per als seus usuaris.
Això és el primer si té usuaris.
Llavors jo vull crear un model igual que mostrem aquí.
Rails, generar, el model, l'usuari, i després correus electrònics cadena - tenim això aquí.
I n'hi ha prou amb crear aquest model, sí.
Rails generen model de correu electrònic de l'usuari: string contrasenya: string.
>> I llavors es crea un controlador que s'ocupa de l'usuari.
A més, pot crear nous usuaris i fer aquest tipus de coses.
I llavors vostè pot seguir endavant amb la creació d' la resta del seu lloc web.
Guai, preguntes?
Sí
>> AUDIÈNCIA: [inaudible]
>> GABRIEL GUIMARAES: Sí, sí, definitivament ha d'anar a la vista.
Aquesta és una molt bona pregunta.
Així que la vista és el que en realitat conté el codi HTML.
Així que és el que els usuaris veuran.
De nou, aquí, es tracta d'una exemple d'una vista.
Té codi HTML i Ruby codi a la vegada.
Així que el codi Ruby hi és per posar les coses de la base de dades, per exemple,
que van ser carregats al controlador.
Així que aquesta variable @ llibres, per exemple, té tots els llibres i la taula
llibres a la base de dades.
Ens assegurem que tenia al controlador.
>> I la vista -
cadascuna de les pàgines fora del seu lloc web és tindrà una vista associat.
Així que si vostè va a la pàgina d'inici, la primera pàgina, harvard2017.com.
Això mostra una pàgina.
I després vas a retallar perfil.
Això va a anar a un controlador això és un controlador de perfil.
I el controlador de perfil es va per donar-li la vista de perfil.
I la vista de perfil es veurà alguna cosa així, però que
tenir informació sobre l'usuari, i no dels llibres.
>> Així que és de codi HTML i CSS i els coses que un usuari veu
amb el codi de Ruby -
que realment imprimeix coses de la base de dades.
Això és més clar?
Espero.
>> AUDIÈNCIA: El codi HTML s'utilitza per de fet fer que el lloc web que l'
usuari veu, però el codi de Ruby és el que fa que el treball del lloc web?
>> GABRIEL GUIMARAES: El codi Ruby aconsegueix convertir a HTML.
Així que el que obté l'usuari és només HTML, OK?
És només HTML.
Aquesta book.title convertirà en el valor de book.title en HTML, a D'acord.
Així que això és tot al servidor, i així això depèn del que els llibres hi són
al servidor en aquest moment.
Però el que el servidor ho faria immediatament sentit és només el codi HTML, a D'acord.
>> Però la vista només es dóna per la disposició de el que l'HTML es va a veure com
i quines són les variables seran.
Aquest tipus de sortida d'impressió, a D'acord.
Aquestes coses no són bàsicament imprimir outs.
Ells van a imprimir les variables, a D'acord.
Llavors, què és només HTML, els que -
autor, títol, descripció.
Això és contingut estàtic.
Això no canviarà.
Això és codi HTML simplement.
Aquestes són les sortides de la impressió per a les variables -
coses que en depenen.
Cool, més preguntes?
Bé?
Sí
>> AUDIÈNCIA: Crec que estava fent tot el l'edició d'un text diferent
programa d'edició.
Hauríem també hem de descarregar?
>> GABRIEL GUIMARAES: Sí, m'agrada això editor de text anomenat TextMate.
I és realment bo.
Està ben adaptat a Ruby.
Es colors coses amb molta cura.
Així TextMate, T-E-X-T. Vaig posar que, aguanta -
>> Vull dir que pots utilitzar gedit o el que vulguis.
Però això és específic per a Mac, i això és realment fantàstic, ja que posa a tots
seus arxius allà.
I en Ruby on Rails, cal per canviar els arxius de molt.
Així que és de molts, molts arxius només anar d'un arxiu, saltar a
un arxiu o l'altra.
Així TextMate és molt bo, però hi ha un munt per aquí.
Més preguntes?
Bé, no?
>> AUDIÈNCIA: Hi ha un desenvolupament mòbil a través de Ruby on Rails?
>> GABRIEL GUIMARAES: Tinc sentit parlar de les coses.
Jo no els he fet servir.
Vostè podria investigar més sobre això.
No estic segur de si hi ha alguna El millor que hi ha.
Bé, no?
>> AUDIÈNCIA: [inaudible]
>> GABRIEL GUIMARAES: No Rails, probablement varietat Ruby.
Obriu una finestra de terminal i el tipus, "Ruby".
Sí, probablement, i llavors vostè simplement instal · leu Rails.
Però si vostè va a instal lar el nou Rails 4.0, que recomano encaridament,
vostè ha de descarregar de Ruby 2.0.
Aquesta és la nova també.
I els nous Rails 4.0 té alguna cosa genial que
ho fa amb els actius.
Gestiona actius.
Actius de nou són imatges, arxius CSS, i arxius JavaScript.
Així que una cosa realment polida que Ruby on Rails té per a vostè és tots els CSS
arxius que tens i tot -
simplement fas tot per amunt en una enorme arxiu, sense espais ni res,
per reduir al mínim el temps que l'usuari necessita descarregar aquest codi del seu servidor.
>> Així que quan et veus al teu ordinador, és tindrà com 15 arxius CSS.
O molts, molts arxius CSS diferents.
Però al final del dia, el que Rails automàticament fa per a vostè és que posa
tot junt en un arxiu gran de manera que minimitza el temps de sol · licitud.
Això és realment genial.
Sí?
>> AUDIÈNCIA: [inaudible]
>> GABRIEL GUIMARAES: Exactament.
Per tant, la integració de Google Maps.
Aquesta és una API de JavaScript de Google.
Així que em vaig anar a la pàgina web de Google.
Ells tenen aquesta API de Google Maps i jo descarregat el codi i ho va integrar
al meu entendre.
Així que el que havia de fer allà és que em necessitava per aconseguir la
poblacions de la base de dades.
Això es va fer al controlador.
Així que vaig anar al controlador -
On és el controlador.
El controlador es veia així.
Tens totes les ubicacions de la estudiants, posar tot això en un gran
variables, una gran llista, que té totes les localitats.
>> I a la vista, ja que el codi JavaScript API és alguna cosa en el
veure, no?
Com que JavaScript s'executa dins del seu HTML codi, que serà enviat a
la màquina de l'usuari.
I a la vista, vaig carregar tot això informació en l'API de Google.
I ho va fer tot això per jo, que és realment genial.
Però si vol utilitzar les coses al back-end, i és com una biblioteca, per
exemple, de nou -
la integració amb Facebook.
Això és una cosa que molts, molts, moltes de les aplicacions estan utilitzant avui en dia.
>> Així que la seva integració amb Facebook perquè és molt més fàcil simplement
Inicia sessió a Facebook de crear un compte i bla, bla, bla.
Llavors només ha d'utilitzar una joia i és tan simple com anar a l'arxiu de joia.
Gem arxiu és un arxiu anomenat arxiu joia en directori d'origen de la Ruby on
Rails projecte.
Només has d'anar-hi o afegir nova joia.
I ho busques a Google.
Hi ha moltes, moltes, moltes joies.
N'hi ha un que ho faci específicament això per a la integració de Facebook.
No estic segur del que el nom de la mateixa.
Només Google i ja està trobarà.
Bé, més preguntes?
Impressionant, gràcies per venir.