[Música tocando] STEPHEN Turban: Entón, eu estou Stephen turbante. Ao longo do lado aquí, quizais nós pode obter algunhas persoas para mergullo. Temos Gabriel e Zack. Entón, por un breve guión sobre o que iso vai parecer, Eu vou estar facendo algunha moi ollar de alto nivel para o que é MVC. Gabe? GABRIEL Guimarães: eu vou falar Ruby e algo como o Rails funciona e como pode axudar a construír aplicacións web. Zack Chauvin: E eu vou amosar-lle un exemplo concreto de como usar Rails para construír un app super incrible. STEPHEN Turban: Awesome. Doce. Todo certo. Entón imos falar sobre MVC. Entón imos ao seguinte foto, que Vou facer premendo este botón. E imos para o desenvolvemento next--, Eu gusto de pensar en ir a CVS, porque CVS é ​​unha tenda e tamén ten un V no centro. E así imos imaxinar a unha tenda. E imos facer esta tenda vender só unha cousa. Entón nós imos ter esa almacenar só vender estes vasos vermellos. E imaxina que camiñar, e ir á fronte da tenda, por persoa. E o seu nome é Vince. E Vince ondas Ola para ti, di ola. E entender unha cousa sobre Vinci. Así, sempre que pensamos en Vinci, nós ten que pensar en dous adxectivos clave. Vince é bonito, pero é estúpido. Aceptar. Entón, vostede sabe, non por culpa propia, Desafortunadamente, é fermoso. El é o noso punto de vista. Así, o noso primeiro membro do elenco está aí. Teña isto en mente. Agora, lle pregunta Vince, vai, hey Vince. Eu son un cliente. Di ola. Eu realmente quero un dos seus vasos vermellos. E o que Vince dicir? Alguén ten algunha idea do que Vince di? Vou chamada fría. ¿Que pensas Vince di? Audiencia: Di, podo amosar-lle onde está, pero eu non podo darlle un. STEPHEN Turban: Di, podo amosar-lle onde está, pero eu non podo darlle un. Aínda peor. Alguén ten outra idea do que Vince podería dicir? Audiencia: Ten que ir de selección se eles teñen algunha vasos vermellos. STEPHEN Turban: Vince non mesmo sabe que ten que comprobar. Algo máis? Entón dixen, ten que comprobar se ten vasos vermellos. Continúe. Audiencia: ¿Que é un vaso vermello? STEPHEN Turban: ¿Que é un vaso vermello? ¿Que é un vaso vermello? Vince é confuso. Entón Vince vai falar con noso próximo membro do elenco, Carl. E cando pensamos sobre Carl, nós gotta pensar sobre dous grandes adjectives-- el é controlador, pero é incapaz. Entón Vince goes-- el vai, o que é un vaso vermello? Eu non sei o que é un vaso vermello. El se vira, e el pregunta Carl. Di que, Carl, alguén pediu un vaso vermello. Podes facelo? E o que Carl dicir? Imos descubrir iso. Alguén ten algunha idea do que Carl di? E eu só vou repetir-lo de volta para ti. Vin un movemento da man. Audiencia: Di a alguén outra cousa para obter os vasos vermellos. STEPHEN Turban: Di outra persoa para obter o vaso vermello. Exactamente. E nós temos unha idea que esa persoa poida ser? É unha información. Comezará cun M. Mob? Audiencia: Modelo. STEPHEN Turban: O modelo, si. O seu nome non é o modelo, por desgraza, porque iso é un nome parvo. Temos Mitt. E cando pensamos sobre Mitt-- non, iso non é unha imaxe de Zack. Temos que pensar en dous adxectivos clave con Mitt. El é capaz, pero el é submiso. Entón Mitt sabe o que ten que facer, pero realmente non pode facer nada. Ou que realmente non pode decidir sobre o seu propio. Polo tanto, temos Carl. Carl grita con Mitt. E el di, hey Mitt, necesitamos vasos vermellos. E Mitt vai ao seu vaso depositario vermello. Baséase nun vaso, e dá-lo de volta. Alguén ten algunha idea do que acontece entón? Dá a copa. Ata agora, Mitt foi a súa vermello repositorio vaso, toma para fóra, verifiquei fóra, dixo: Tomei un vaso vermello. E está dando para Carl. Vostede ten unha idea? ¿Que pensas Carl fai? Audiencia: Carl dá para Vince. STEPHEN Turban: Carl dá para Vince. Vince. Audiencia: E Vince mostra-lo para [inaudível]. STEPHEN Turban: Exactamente. Entón, é exactamente iso. Entón Vince leva a copa, nin sequera sabe o que é, pero mostra que para o usuario. Entón, imos tentar recrear iso realmente brevemente. E imos ter tres voluntarios silenciosos, como vostedes non van para poder falar. Entón, eu podería incorporarse tres? Aceptar. E quen quere ser? Audiencia: Vou ser Vince. STEPHEN Turban: Vince, OK. Bonito, pero estúpido. Óptimo. Alguén? Estamos á procura dun capaz, pero submisa. Alguén máis quere ser capaz? Audiencia: eu podería ser Carl. STEPHEN Turban: Sweet. Temos Carl. Audiencia: Mitt. STEPHEN Turban: Mitt, OK. E nós imos ter a-- eu vou ser o cliente. Entón imos alí arriba, imos para arriba. E está todo o mundo no punto de vista? Entón, eu vou pedir para Vince ir por diante, só sorrir, só sorrir tan brillante como sexa posible. E nós imos pedir a Carl, seguro, por que non facelo, como, estar ben detrás dela? E Mitt, por que non facelo só tes que ir fóra na parte de atrás, e entón eu vou darlle un grupo de vasos para saír con. Entón, eu son un cliente. Eu veño. E fago [inaudível] I dicir, ola, gustaríame unha cunca. Perfecto. Entón Vince non ten idea. Entón, o que Vince facer a continuación? Vince-- OK, entón eu vou para ser narrante agora. Vince grita con Carl, vaso! Que Carl facer? Carl grita con Mitt. Mitt colle un vaso. Mitt dá para Carl. Carl volve Vince. Vince e mostra ao usuario. E iso é un alto, alto, alta tan alto ollar, a MVC. Nós división lo por ter un punto de vista, o que o usuario ve, un controlador, alguén que fai todo en segundo plano pero realmente non pode actualizar calquera cousa ou non pode facer nada de calquera significado excepto chamando a vista e do modelo. E entón temos Mitt, o modelo, que actualiza todos os datos que temos. Entón, moitas grazas para a nosa fermosa, controlar e voluntarios capacitados. E eu creo que foi iso. [Aplausos] Creo que Gabe vai falar agora nun nivel elevado quizais menos. GABRIEL Guimarães: Ok, caras. Agora imos falar un pouco máis sobre código e sobre Ruby on Rails en si, e sobre como se relaciona a todos desta historia MVC. Basicamente, Ruby on Rails é un framework. Máis sobre iso nun segundo. Pero só para darlle un sentido de quen o está a usar, como, todos estes grandes companies-- así GitHub, Groupon, Twitter-- todos están utilizando Ruby on Rails como cadro principal para aplicar o seu sitio web. Entón, eu estou seguro que unha chea de xente usar estes sitios aquí. E é todo Ruby on Rails para aplicar o modelo, a vista, e que o controlador en todos estes sitios e moitos máis. OK? Entón, como dixen, Ruby on Rails é un framework. E pode tipo de pensar dun cadro no sentido de como construír unha casa. Entón, se está indo para construír un house-- e sempre pode comezar de cero, non? Pode tentar chegar cun modo para serra a madeira, e para levar a madeira para o lugar, e para obter as pedras en forma correcta, e despois de todo isto. Pero iso vai levar probablemente lotes de anos ata obter todo o material, e comeza todo xunto, e realmente comezar para construír a súa casa. Entón non é que se comezar con un cadro con algo que é xa no tipo de lugar para calquera tipo de casa que quere algo build-- iso é moi xenérico, pero que pode logo modelar cara ao seu propio goals-- entón pode aproveitar este poder dos cadros para construír -lhes algo moi, moito máis rápido. Aceptar. Polo tanto, esta é a mesma idea nunha marco para unha aplicación web ou para calquera tipo de aplicación, a esta materia. Realmente comezar coa metade dunha aplicación xa está aí no lugar para ti. E por iso, quero dicir que obter lotes de arquivos que xa posúen funcións, como bibliotecas, como función, e os comandos que poden ser executados en orde para facer a súa vida moito máis máis simple e máis fácil. Aceptar. Polo tanto, neste caso, nós imos para falar Ruby on Rails. Hai lotes de diferentes Estruturas aí. Hai Django para Python. Hai Zend Framework ou Laravel para PHP. Hai moitas diferentes. Ruby on Rails é un novo moi agradable. Unha morea de xente usar isto en startups e este tipo de ambiente. E algunhas delas moi grande empresas que eu mostre aquí antes tamén están utilizando Ruby on Rails. Entón, só para lle dar un sensación de que Ruby é como, xa que vostedes son máis utilizados para, como, C e un pouco de PHP agora, a Ruby será o equivalente de PHP neste sentido. Este non é Rubio. Este é C. OK? Pero isto é como a Función DJBHash que eu Coñezo moita xente usadas para erros ortográficos PSET. E en Ruby, bastante así como en PHP, podería aplicar iso con só algunhas liñas de código. En vez de ter que se preocupar sobre a función hash, ter que preocuparse dos baldes, e todo iso, pode simplemente dicir: dicionario = Hash.net. E entón usa o tipo de como a mesma idea que tiña PHP. E por iso é a verdade. E entón se quere comprobar, para comprobar a función sería se dicionario "foo" é igual a igual a true, return true. E iso é todo, OK? Entón notar algunhas diferenzas. Non hai punto e coma aquí, como había en C. Pero a idea xeral é moi semellante. OK? Ademais, en Ruby, existen pedras preciosas, que son unha especie de as bibliotecas Ruby. E Rails procesa-los en un xeito moi agradable para ti. Entón, se quere poñer nalgúns biblioteca que fai electrónicos, ou que fai de mensaxes de texto, ou que fai integración Facebook, ou calquera tipo de cousa así ao seu app, é moi, moi fácil. As probabilidades son que pode atopar algo así en internet. E eles simplemente facer algo así como put que gem que quere empregar no ficheiro de xoia. E entón Rails instala todo. Non ten que se preocupar de calquera de que, de xeito que é moi legal. Ademais, hai moito, abundancia de axuda en liña. Así, pode atopar unha morea de cousas. Se tes un erro, pode simplemente buscar en Google, e que será moi fácil de obter axuda. E é unha morea de diversão-- exactly-- porque Non ten que se preocupar co baixo nivel detalles, a posta en marcha de táboas de hash e ter que vir cara arriba con todo cabeceiras HTTP, e unha morea de cousas, e mesmo algunhas cousas nivel máis superior. Non ten que se preocupar sobre iso en Rails. El fai iso moi, moi ben para ti. E nós estamos indo a amosar que máis concretamente moi pronto. Aceptar. Entón, un pouco sobre o Ruby novo. Entón, é como C, como dixen. No canto de printf, dicimos "Pon", que é "poñer cadea." Pon unha cadea para a consola. E neste caso, estamos só imprimir "Ola mundo". Non necesitamos os parénteses, pero é moi semellante. E entón se quere facer algo aquí, como imprimir unha morea de "roupas íntimas" e unha banda de "bigs" nun loop while, é tipo como en C, non? Non ten os parámetros, pero é practicamente o mesmo. O retroceso aquí conta, entón x é igual a 1. E entón Mentres x é menor que 50-- este é un caso, trátase dun Else. É moi parecido ao que viu. E, a continuación, x + = 1 é só incrementando, tipo de como facer a ++ que pode facer en C. Pero é moi moito do que viu en C. Non debe ser moi complicado. Pero é máis poderoso. Polo tanto, hai algúns comandos aquí que son sempre un pouco máis recente. Así, por exemplo, "puts". Podes empregar esta notación hashtag aquí só para imprimir something-- moi parecido ao que faría se a% D ou% C ou algo parecido. E realmente pode poñer un Logo tras a declaración. Entón eu só quero facer isso- Se x é maior que 3. Entón, por que eu teño que facer unha enteira Se o bloque? Eu non sei. Só podo imprimir esta só se x é igual a máis de 3. Polo tanto, esta é unha forma dunha liña de facelo en Ruby. Unha lista en Ruby é algo moi versátil. Entón, o que realmente non precisa ter só un tipo. Pode ter unha secuencia, e logo algúns números, e calquera que sexa. E se quere anexar algo a unha lista, pode só usar este notación aquí. E se quere facer unha iteración. Practicamente o 4each en PHP, aquí, ten unha lista e fai "List.each facer." E este "ELEM," esta é como o nome de cada elemento que eu vou ter na miña lista. E entón eu podo só "pon ELEM." E "pon" Practicamente tirantes poñer-lo para ti, imprimir lo. Non importa se é unha cadea ou un int. Vai solucionar isto para ti. Non? Con estilo. E, así como PHP, Ruby e HTML tamén integrar moi, moi ben. E aquí, hai algúns HTML con Ruby na mesma. Polo tanto, temos unha etiqueta corpo como HTML. E se queremos comprobar que un usuario, por exemplo, logueado, podemos só dicir que, a partir de Ruby, se user.logged_in?, Finais de Ruby. Imprimir esta cousa toda, que ten algún Ruby in-lo, o que é xusto tipo como de que a sintaxe para PHP que imprime unha variable. Imos imprimir o user.name. Entón, benvido, Stephen, dentro dunha div HTML. E, ao final, temos un "fin" e Código Ruby, o que significa que esta é a miña Se o bloque. OK? Entón, é como unha perfecta integración entre Ruby e HTML. Hai tamén gran cantidade de recursos. Pero, antes de seguir adiante, alguén ten dúbidas sobre Ruby, algo? Aceptar. Hai moitos recursos en liña para tryruby.org, Code Academy, ruby-lang.org, onde podes probalo para fóra no seu navegador antes de que realmente digo, oh, OK, eu vou usar Ruby para o meu proxecto final. E así definitivamente dar aqueles probar. Todos estes diapositivas son estará dispoñible en liña, así pode simplemente baixalos. E si? Audiencia: [inaudível] o que só mostrou foi HTML eo código embutido Lo para esa noción de Model View Controlador? GABRIEL Guimarães: Si. Faremos isto nun segundo cando amosamos noso exemplo, OK? Grazas pola pregunta. Polo tanto, a cuestión era, basicamente, se nós pode amosar esta integración do Ruby HTML no Modelo Ver cadro Controller. Así, a idea do Modelo Cadro View Controller é que é, basicamente, unha filosofía, só como Stephen mostrou aquí. E non é algo que ten que facer, pero é algo que fai a súa vida moito máis simple. E Ruby on Rails é construído en torno a esta filosofía de código. Entón, nós estamos indo a amosar un exemplo moi pronto. Entón Rails é o amor. Unha morea de persoas están usando-o, como dixen. E é moi divertido. Vostedes deberían definitivamente darlle un intento. MVC fai todo máis sinxelo. Así, o Model View Controller, as cousas que separan e poñendo unha persoa, por si só, ou unha parte do seu programa para facer cada un dos diferentes postos de traballo que a aplicación ten de facer. E menos tempo gastado sobre os problemas de baixo nivel. E moi popular agora. Temos Rails 4.0, que é unha nova versión. E ven con unha morea de cousas legais. Outra pregunta. Audiencia: Outra pregunta. Ruby on Rails contra Ruby on Rails Grails. GABRIEL Guimarães: Aceptar. A pregunta era, Ruby on Rails contra Ruby-- Audiencia: Grails. Ruby? GABRIEL Guimarães: Yeah. Entón Ruby é a linguaxe. Audiencia: Non. Eu estou pedindo para comparar unha lingua e un cadro, Ruby on Rails, con outra linguaxe popular framework-- Grails-- con Ruby on Rails. GABRIEL Guimarães: Aceptar. Sentímolo. A cuestión foi, compare Ruby e Ruby on Rails a outro cadro e another-- Audiencia: Ruby. Está seguro. Se non sabe sobre iso, todo ben. GABRIEL Guimarães: Como, o que eu entendo é isso-- Audiencia: Non hai outro framework chamado Grails. GABRIEL Guimarães: Oh, Grails. Eu nunca oín falar diso. Sentímolo. Eu nunca oín falar de Groovy on Rails. Sentímolo. Audiencia: É moito mellor integrado con Java. GABRIEL Guimarães: Entendo. Audiencia: Eu son só un curioso sobre algunhas persoas que coñezo como-- GABRIEL Guimarães: Non, eu nunca escoitou falar que un, por desgraza. Grails. Audiencia: E algunhas persoas obviamente, como Ruby on Rails. GABRIEL Guimarães: Eu teño Rubio usados ​​on Rails moito. Eu usei algúns Django con Python, como dixen. Eu usei algúns Laravel. Pero eu non usara Groovy on Rails. Sentímolo. E é moi popular agora con Rails 4.0. Como, algunhas das cousas que o Rails fai por ti, por exemplo, é vostede ten unha morea de arquivos CSS e lotes de arquivos JavaScript. E pode tratalos como separado e todo. Pero, entón, cando automatically-- envía o seu código para produción, el compila automaticamente los todos nun único arquivo que é minified, sen ningunha espazos, de xeito que el ocupa menos espazo na súa aplicación, de xeito que realmente pode escalar cousas moito. É por iso que estas grandes empresas como Twitter e GitHub están usando Rails, porque fai todo que, para ti, o que é moi legal. Unha cousa que é moi, moi, moi asustado para as persoas, incluso eu, que están tentando traballar cun cadro no inicio, é que cando comeza unha aplicación, vai ver unha morea de arquivos. Como, cando se crea Rails Nova, a miña petición, vai ver todo isto folders-- app, bin, configuración, db, lib, rexistro, público. Como, montes e montes de cousas. E a primeira vez que eu vin aquilo, eu era como, OK, eu non teño idea do que está a suceder. Eu só quero crear unha Sitio web con "Ola, mundo", e iso está me dando, como, 100 millóns de páxinas diferentes. Eu non sei o que está a suceder. Entón, por favor, non ser moi asustados con iso. A idea é que realmente ten a metade dunha casa alí para xa. Ten un enteiro marco para xa. É por iso que hai tantos arquivos. Pero o bo é que separa todos eles moi ben. As probabilidades son de que non se preocupe sobre a maioría dos mesmos. O máis importante, eu diría, é o cartafol app, onde o seu app realmente vive. Así, a configuración, vai cómpre configurar algunhas cousas, como base de datos e cousas así que tipo de base de datos que está a usar. Pero ademais, como a maioría dos o seu traballo será feito en app. Así, en app, ten activos, controladores, axudantes, maletas directas, modelos, puntos de vista. Entón, aquí, comeza a ver que controladores, modelos e puntos de vista veñen en xogo. Usuarios son só se quere enviar un correo. Helpers se quere crear algunhas funcións que usa moito na vista. Entón poñer-los en axudantes. E activos é basicamente todos súas imaxes, todo o seu CSS, todo o seu JavaScript, e como estes tipos de cousas que son enviados para o cliente. E todo o que está no activo, que dixen antes, queda minified. Ela é compilada. E realmente non se preocupe que, cando se vai ao código de produción. Con estilo. Agora Zack vai entrar, e é imos facer un exemplo de Twitter50. Audiencia: Woo-hoo! Zack Chauvin: Awesome. Así que tiven a oportunidade de traballar con Ruby on Rails este verán. É un cadro sorprendente. Estou moi parcial a el. E eu vou amosar-lle un pouco de un exemplo do que pode parecer. Ir ata Chrome. Polo tanto, este é un exemplo dunha forma moi simple Ruby on Rails application-- algo como este é algo que Ruby realmente destaca isso-- só que o seu modelos son moi ben definido. Neste exemplo, vostede verá dous modelos diferentes, que son de que temos usuarios e temos tweets. Polo tanto, este é Twitter50, Propio Twitter de Harvard. Como verás, eu estou rexistrado comozack. E eu son capaz de facer novos tweets. Entón eu penso-- "Este é un" - desculpe? Audiencia: [inaudível]. Zack Chauvin: Oh, OK. Que deixar o servidor. Excelente. Entón aquí estamos nós. Como verás, temos a nosa Twitter aplicación aquí. E é super doado de iniciar o servidor. Nós imos só facer "servidor carrís." Óptimo. Aceptar. Grazas por iso. Entón, agora estamos correndo. E nós imos dicir: "Este é un seminario incrible. " E imos ver que pasa. Entón, nós imos twittar sobre iso. Alí no fondo, pode ver agora hai máis de tres tweets. Entón temos un pouco de paxinación suceder. E nós temos que tweet. E eu tamén pode buscar a través do meu Busca tweets-- para este e os dous aqueles que teñen a palabra "This" neles aparecen. Tamén pode borrar os tweets por premendo no pequeno botón Delete. E, obviamente, eu só podo borrar o posto que pertencía a min. Xa, nós case ter a funcionalidade de Twitter. Como, cando pensa sobre iso, Twitter realmente non fai moito. Ten os usuarios, ten tweets. Hai algunhas características máis complexas. Pero cando realmente comezar a el, é ben unha aplicación sinxela Ruby on Rails. E algo así, cun bo entendemento do Ruby on Rails, podería probablemente facer en unha ou dúas horas. E iso vén realmente ao seu mantra Ruby, que é convención sobre configuración. Entón, de volta ao día, a xente, a calquera hora querían facer esta web, tería que comezar de cero. OK, quero facer un sitio. Imos facer este ficheiro e este ficheiro e este ficheiro. Con Ruby on Rails, non hai nada diso. Vostede di: Eu quero un novo app. E, así como Gabe mostrounos, el crea a estrutura de arquivos para nós. E acabamos de cambiar o pequenas pezas que necesitamos. Acabamos de personalizar o que é único sobre o noso app. Con estilo. Entón, volvendo á nosa presentación preview-- interesante. Onde podo presentar? Audiencia: pantalla completa. Top dereita. Zack Chauvin: Excelente. Con estilo. Aceptar. Entón, en primeiro lugar, o modelo. Stephen fixo un impresionante traballo de delinear MVC. E agora imos relacionar que volve para Ruby on Rails. Así, o modelo que pode tipo de pensar en como a base de datos. Vostede viu iso en CS50 Finanzas, onde as tendas modelo a información sobre cantas accións que ten, ou todas as transaccións que fixo. Este é un exemplo de unha liña de como faría ir sobre como facer un novo modelo no Rails. Entón, quero un usuario. Vai ter un correo electrónico, que é unha cadea, e un contrasinal, que é tamén a cadea. Entón, é como those-- Quero que cada fila na miña táboa de usuarios para parecerse con iso. A parte realmente impresionante sobre Rails é que fai innecesaria a escribir calquera SQL moi bonito. Cantos de vostedes amado escribir SQL en PSET 7? Exactamente. SQL non é moi doado de usar. E Rails abstrai todo o que fóra con estes comandos realmente fáciles. Así, por exemplo, se temos un usuario, o usuario ten moitos tweets. E cada un deses os tweets pertence a un usuario. Entón, se ollar aquí, este é o noso modelo para o noso tweet. E todo o que temos que dicir é este único linha-- Estou un tweet e eu pertenzo a un usuario. E con esa liña única e unha pouco de configuración da base de datos, Rails establece esa relación. A calquera momento, podo só dicir, zack.tweets, como, darme todo de tweets Zack. En SQL. Super fácil. Unha vez máis, iso é convención sobre configuración entrando en xogo. Podes ver un pouco dun exemplo de Rubio aquí. Como dixo Gave, escribir Ruby é tipo de como escribir Inglés. É unha linguaxe moi alto nivel, e pasa a ser moi fácil para nós a dicir cousas como, quero asegurarse de que este tweet ten un corpo. A súa presenza é certo. E quero estar seguro de que esta tweet, como Twitter normal, ten unha lonxitude máxima de 140. É super-intuitivo, un realmente grande lingua. Logo temos a vista. Entón, trátase de HTML e CSS. E aquí está un exemplo de un punto de vista. Entón Ruby on Rails tipo de perfección integra tanto Ruby e HTML a fin de xerar o que queremos na páxina. Polo tanto, este é un exemplo do noso esquema. Así, podes ver algunhas marcas que caras están afeitos, como HTML, corpo, todas esas cousas boas. E ben aquí, con todo, nós incorporar algunhas Rubi, dicindo: se hai unha mensaxe a ser exhibida, a continuación, amosar a mensaxe nunha div. Entón eu non vou ir moito para iso. Pero este é xeralmente un páxina que é renderizado on-- e non importa en que páxina está en, este é renderizado. Entón, iso é o que está incluído sempre. Con estilo. Outro exemplo dun view-- este é daquel en que escolleron todos os tweets. E algunhas destas cousas pode parecer moi familiar. Así, por exemplo, aquí, estamos loop través de cada un dos tweets e estamos a imprimir a eles. Entón, aquí é onde estamos imprimindo a corpo. E se user-- do Tweet Aquí é un exemplo real de non SQL está implicado. Eu só estou pedindo, é este usuario do chilrear o usuario actual? Logo mostrar un enlace para excluílo. É super sinxelo. O controlador. Polo tanto, este é, de novo, a interface entre o modelo ea vista. É o que fai o traballo duro sendo de interacting-- o intermediario. El leva información para a ver, o que imos ver en un segundo. E, a fin de interactuar co modelo, isto chama métodos modelo, que son o que vostedes están familiarizados como funcións. Así, por exemplo, esta é controlador do noso tweet. Pode parecer un pouco asustado agora. Pero en realidade é super intuitivo unha vez que comezar a mergullo. Así, por exemplo, no noso índice, que é onde queremos mostrar todo tweets. E así esta liña, basicamente, só pide a todos os tweets. E entón nós arrincar ambos os novos tweet-- así como si queren crear un novo tweet nesa páxina. E pregunta o que o usuario actual é. E esta é moi semellante ao ingresos que viu na PSET 7, onde é só unha especie de contar o view-- é unha especie de, como, pasando as variables que é vai ter na vista á vista. E hai un grupo enteiro métodos de diferentes que o controlador deste Tweet pode manipular. Pero, realmente, Rails fai un gran traballo de tipo de dividíndoos en diferentes accións que o controlador podería facer. Existen dúbidas sobre calquera das partes MVC de Rails? Kind of só unha brisa. Entón vostedes poden comprobar Lo no seu propio país. Impresionante. Nós imos seguir. Así, a instalación Rails. Instalando Rails pode ser, como, unha das partes máis asustado dos carrís enteiros proceso, por desgraza. Pero, obviamente, todo nós están por preto para axudar. E xa que está aí, unha morea de grandes recursos, Gabe como mencionado, para comezar a traballar. Aquí están as ligazóns que vai ter, a fin para baixar Rails para obtelo instalado na súa máquina. Obviamente, está dispoñible para Windows e Mac e para o dispositivo CS50. Preguntas sobre calquera cousa que eu dixen? Audiencia: Eu sería interesado, actually-- entón eu sei que a descarga software é a maior barreira. Se hai interese suficiente para ter un descargar mini-sesión ou algo así. Zack Chauvin: Hum-hum. Si. Isto pode ser realmente útil. Se alguén é realmente entusiasta sobre usando isto para o seu proxecto ou no futuro, entón nós definitivamente o pracer de falar con vostede sobre iso. Hum-hum. Audiencia: Unha cuestión relacionada para o que eu pedín antes. Para aqueles de vostedes que fixeron outras estruturas que aínda están intentando facer o mesmo cousa, facelo máis fácil para construír un sitio web ou un funcionalidade, eu creo que calquera sentido de por que sería on Rails contra Zend ou algúns dos outros frameworks e idiomas. Zack Chauvin: Eu só vou dicir que o meu $ 0,02 sobre iso. Eu amo o Ruby on Rails. Tiven a oportunidade de traballar tanto en PHP e Ruby on Rails. Prefiro moito máis Ruby on Rails por mor Ruby. Definitivamente, iso é unha gran parte diso. Como, cando está seleccionar o encadramento, tamén escoller o idioma. Rubio é super accessible-- creo unha linguaxe moito mellor que PHP. Pero ese é o tipo de preferencia persoal. Como así, outra consideración é a comunidade de atrás do cadro que se está a traballar. Agora Ruby on Rails é realmente quente. Hai toneladas de apoio por tras del. Vostede engada algo sobre Stack Overflow sobre un problema que está Tendo en Ruby on Rails, e é atendida. De novo, é de código aberto, o que significa que está constantemente a ser modificado. Hai miles de persoas que son realmente dedicados a fin de facer este un cadro realmente incrible. Entón é por iso que eu faría escoller Ruby on Rails. GABRIEL Guimarães: Yeah. Eu diría que a idea atrás a maioría dos frameworks es vai atopar alí fóra é moi, moi semellante, non? Así, o Model View Controller, o feito de que o noso controlador de vai parecer algo como isto-- cada unha das funcións é como unha das súas páxinas, e el redirecciona ti, e el arrinque as variables. Esa será a mesma cousa para cada cadro que ve por aí. E aí, será o modelo. E pode facer cousas como, "pertence". Entón, en vez de facer a versión de SQL, só, como, facer, user.tweets, e ten todo. Todo o mundo ten iso. Excepto en Ruby, fai user.tweets, e, a continuación, algúns frameworks en PHP, fai user.getalltweets Onde meu PHP non é un problema. Como, é unha gran liña. É o mesmo, pero é unha gran liña. Así que esta é unha das principais razóns das miñas preferencias sobre Ruby. É só fago exactamente o mesmo noutros frameworks, el só me leva dúas veces como longas liñas de código. OK? Algunha pregunta? Zack Chauvin: Algo Vou mencionar quickly-- Gabe Falamos un pouco sobre pedras preciosas. E iso é realmente un great-- É dicir, isto é unha especie de común a todos os cadros, que hai unha especie de concepto xema, que é como o meu pequeno exemplo, Teño login. Tipo, pode poñerse, saír. Como, que é, en realidade, tipo de un proceso complexo. Foi tratado un pouco bit para ti en PSET 7. Pero eu non sei totalmente como para aplicar sign-in, sign-out. E iso é porque Ruby on Rails ten toneladas de xemas que fan este tipo de cousas para ti. Unha vez máis, convención sobre configuración. Todo o mundo vai estar facendo este sign-in, paso asinar-out. Entón por que non facer un paquete, chamado Deseñar, neste caso, o que é unha xoia. Simplemente inclui-lo. E entón hai algunha axuda en liña coa forma de usalo. E non se preocupe sobre algo así. Poñer imaxes para estes coisas- unha xoia para iso. Como, cando está intentando facer nada novo, hai unha xoia para iso. E tipo de só xuntar estas xoias e construír realmente un complexo aplicación moi rapidamente. Con estilo. Algunha pregunta? STEPHEN Turban: Woo-hoo. Eu non creo que [inaudível]. GABRIEL Guimarães: Aceptar. Moitas grazas, persoal. STEPHEN Turban: buh-bye. Zack Chauvin: buh-bye. STEPHEN Turban: Woo-hoo. [Aplausos] Yay.