GABRIEL GUIMARAES: C'est CS50. Bienvenue à étonnants Web Apps avec Ruby on Rails. Donc, pour toute personne intéressée dans le Web sites de développement et de décision, web applications, Ruby on Rails est ce outil extraordinaire que Twitter, GitHub, Groupon, et toutes sortes de vraiment sympa, et grand, les applications Web utilisent dans Ces dernières années. Et c'est vraiment, vraiment cool fonction, un outil cool, parce que c'est nouveau. Ainsi, il a tout de la nouvelle et puissante technologies incorporées dans un cadre qui vous aide à composer avec toutes sortes de choses étonnantes. Mais qu'est-ce qu'un cadre? Ainsi, un cadre est essentiellement ce qui crée - lorsque vous démarrez un site Web, si vous avez commencé à partir de zéro, comme vous ouvrez gEdit là, et que vous souhaitez coder tous de votre code HTML et le code tout votre PHP, l'ensemble de votre CSS, tout à partir de zéro - c'est juste va être beaucoup de travail. Et un cadre vous donne littéralement la moitié du site déjà fait. Donc, vous commencez avec une demi-site qui a tout là pour vous. Comme les connexions de base de données, et tout sortes de choses que vous avez à vous soucier sur si vous le faites à partir de zéro, vous n'avez pas à vous soucier de ceux qui détails de bas niveau. Mais aujourd'hui, nous allons exporter l'un des les sites que l'étudiant de première année de la classe de 2017 sont probablement familier. Alors ce site est le site que je fait pour notre classe pendant l'été. C'était un site Web où les étudiants de la classe de 2017 pourrait identifier et interagir les uns avec les autres. Et puis c'est une carte - tout le monde, où les gens sont. Et nous avons eu un jeu de livre, un jeu de chansons où nous avons vu les chansons des gens et les livres des gens. Qu'est-ce qu'ils aiment lire, ce ils aiment à écouter. Et la partie la plus intéressante de il est qu'il m'a littéralement pris trois heures pour coder tout cela. Parce que si je devais tout faire à partir de de zéro, comme l'ouverture de gedit, il aurait probablement pris me 20, 30 heures. Mais avec Ruby on Rails, car tout a déjà été mis en place pour moi, il ne m'a fallu que trois ou quatre heures, ou quelque chose comme ça. Alors, quelle est Ruby on Rails. Ruby on Rails, à nouveau comme nous l'avons déjà dit, est un cadre. Ceci est une photo d'un cadre. Donc, vous allez commencer à construire une maison, vous avez déjà la moitié de la maison fait. C'est le cadre. Et Ruby on Rails est exactement comme cela. Et vous devriez penser que c'est, vous commencez un site Web, vous commencez votre site demande, nous avons déjà la moitié de l'y faire. Mais d'abord, qu'est-ce que Ruby? Ruby on Rails utilise la vue du modèle contrôleur, qui est paradigme, qui est un très intéressant - et toutes les applications de nos jours utiliser quelque chose comme ça. Cette idée de séparer les choses en trois parties, le modèle, la vue, et le dispositif de commande. Nous allons parler un peu plus à ce sujet plus tard. Premièrement, quelle est Ruby? Donc, c'est Ruby. Et c'est le symbole de la langue appelée Ruby. Ruby est un des Newish interprétés langues, si le script. C'est une langue qui n'est pas compilé comme C. Il est compilé sur la course. Donc, c'est une bonne chose parce que, tout comme PHP, par exemple, est également interprété, est pas compilé. C'est bien parce que son portable. Alors que vous venez de passer votre code de une machine à l'autre. Depuis une machine Linux, de Windows la machine, à un Mac ou Apple machine ou quelque chose comme ça. Et vous n'avez pas besoin de s'inquiéter des détails concernant chacun des spécifique les systèmes d'exploitation. Il va travailler partout. Et Ruby est un langage qui - vous les gars vous souvenez sans doute cela. Les gens utilisent la fonction de hachage mis en œuvre C dans la table de hachage la semaine dernière et a eu toutes sortes des erreurs de segmentation. Et puis les choses se soucier de savoir si cette chaîne i là, la chaîne i ici, a été effectivement minuscules ou majuscules, ou ce genre de préoccupante détails de bas niveau. Eh bien en Ruby, si vous voulez mettre en œuvre une table de hachage, c'est exactement la façon dont vous créer une table de hachage. Vous dites, dictionnaire, c'est le nom de ma variable, = "Hash.new". Et puis dictionnaire ["foo"], et quand je suis ajoutant foo à ma table de hachage, je suis juste dire foo est là. Et puis, si je voulais vérifier si foo était là, je viens de dire si Dictionnaire ["foo"] == true return true. Whoa, et c'est votre table de hachage. C'est la mise en œuvre de table de hachage en Ruby. Donc tout le monde souhaite qu'ils puissent avoir utilisé quelque chose comme Ruby pour la dernière l'ensemble de processeurs de la semaine, non? Nous avons toutes sortes de raisons de vouloir d'utiliser un langage comme Ruby. Ruby a gemmes. Gem est un nom pour un genre de bibliothèque en Ruby. Donc, toutes sortes de fonctionnalités intéressantes que vous pouvez avoir, par exemple, si je vouloir intégrer ma demande. Que l'application de Harvard 2017 a été intégré à Facebook. Ainsi, vous pouvez vous connecter, via Facebook, à l'application. Donc, si vous allez faire, vous n'avez pas besoin de s'inquiéter à propos de l'envoi de certains demande HTTP à Facebook, et attendre pour la réponse, et en forçant l' réponse, et blah, blah, blah. Vous venez de télécharger le joyau que fait tout cela pour vous. Et puis vous n'avez pas besoin de vous soucier de tout cela. Et puis beaucoup d'aide en ligne, bien sûr. Il ya beaucoup, beaucoup, beaucoup de sites Web qui vont vous aider à la fois avec Ruby et Rails. Et c'est beaucoup de plaisir à code. Exactement parce que vous pouvez cesser de s'inquiéter sur ces problèmes pas si amusantes. Comme si quelque chose est en minuscules ou majuscules, et alors pourquoi est-ce vous donnant une erreur de segmentation, et vous pouvez vraiment plonger dans la très choses intéressantes. Pour plonger dans les problèmes vraiment cool. Donc, Ruby est juste comme à C dans un sens. Donc, il ne va pas être que grand d'un saut en réalité. Donc met, c'est notre application d'impression en Ruby. Je pense que vous pouvez utiliser impression trop, mais c'est ce que met utilise tout le monde. Donc met juste "Bonjour tout le monde". Vous pouvez, ou vous ne pourriez pas, avoir la parenthèse encerclant "Bonjour tout le monde" là-bas. Vous pouvez simplement choisir de ou de ne pas l'utiliser. Et alors x = "1". Une boucle while semble assez la même. Il a juste inférieure syntaxe. C'est une sorte de nettoyage un peu. Et puis, si x> 25 puts "Big!" et d'autre met "Petit ...". Et c'est une sorte de C dans ce sens. Donc, si vous regardez cela, vous pouvez approche comprendre probablement tout ce qui se passe. Mais il est plus puissant. Plus puissante parce que, plus que cela, Il peut faire des choses ne sont pas si - une sorte de hackage peu. En C, vous ne pouviez pas faire dans il suffit de faire une seule ligne. Par exemple, met «Je suis # {x}". C'est syntaxe juste pour mettre la valeur de X ici, et ne pas imprimer la caractère x. En C, vous aviez à faire le pour cent d, et puis mettre en place la variable x après l' la virgule ici, ou quelque chose comme ça. Et en Ruby, il ya un raccourci pour faire juste cela. Et met ce, si x> 3, de sorte que vous pouvez mettre le si sur une seule ligne. Et puis une liste. Listes de C, comme un tableau, vous devez garder une trace de la taille de votre tableau est ou sinon vous obtiendrez une segmentation redire. Votre tableau est un seul type. Donc c'est soit un tableau de la charge ou un tableau d'entiers. Dans ce cas, j'ai créé une liste ici, c'est un tableau, qui a le premier élément est une chaîne, John, puis quatre, deux - ce sont des nombres entiers. Et puis j'ajoute juste, liste, la Gauche équerre, Gauche Équerre, trois. Cela signifie simplement append quelque chose à ma liste. Donc c'est un peu plus intéressant que si vous voulez l'utiliser comme une simple liste de nombres entiers, vous pourriez, totalement. C'est tout à fait bien. Il suffit de mettre entiers là. Mais si vous voulez faire quelque chose qui est plus convaincante, qui a d'autres , que a - Je ne sais pas, toutes sortes de listes y, ou d'autres objets qui ne sont plus intéressant, vous pouvez tout à fait le faire. C'est tout à fait bien. Et puis si vous voulez pour parcourir la liste, vous pouvez utiliser la plus C-ish type d'approche. C'est pour la boucle, vous lancez une variable, i = "1", ou i = "0". Et puis vous allez, et une itération, et obtenir tous les éléments. Mais vous pouvez également utiliser cette approche plus Ruby-comme. C'est comme un list.each. C'est tout simplement dire, revenir moi tous les éléments de la liste. Et faire à chaque élément, les appeler élém. Donc, c'est juste un nom que je suis donnant à chaque élément. Et maintenant cela va répéter pour tous les éléments, et élém, ça va être la façon dont nous accédons que seul élément. Ainsi, vous pouvez tout à fait coller à la approche de C, mais cela fonctionne aussi. Et c'est exactement la même chose, OK. Et à part ça, il est vraiment, vraiment facile à intégrer Ruby et HTML car vous les gars sont intéressés dans les applications web. HTML est certainement quelque chose qui vous allez utiliser beaucoup. Et ici si vous vouliez mettre Ruby en HTML, il suffit de commencer ici, <%. Cela signifie, ici Ruby commence. Et puis, un peu comme%> PHP dans ce sens. Voici Ruby se termine et vous pouvez il suffit de mettre votre si ici. Et puis j'ai une variable user.logged_in. En Ruby, nous ajoutons généralement ceux, soit point d'interrogation ou d'exclamation marque, comme un personnage de la banque, juste genre de la distinction entre nos fonctions. Mais vous venez de mettre que pour votre propre bien. Ce n'est pas quelque chose qui change rien dans la fonctionnalité. Donc, juste pour me rappeler qu'il s'agit d'une fonction - et les fonctions de Ruby, plutôt que C, comme je l'ai déjà dit, ils n'ont pas besoin de les parenthèses. Alors que connecté chose, c'est une fonction, c'est une méthode. Mais vous n'avez pas explicitement besoin de mettre les parenthèses là. Il suffit donc de demander si l'utilisateur a ouvert une session dans, et si l'utilisateur a ouvert une session en maintenant HTML recommence. Alors bienvenue, et ici J'imprime la user.name. Et c'est tout. Donc, c'est assez simple, comment vous intégrez Ruby avec votre HTML. Et des ressources, comme je le disais, il ya toutes sortes de ressources pour Ruby. Les gars, vous pouvez tout regarder cette place après en raison à la fois de la vidéo, et les lames, vont être disponible en ligne. Et maintenant, nous allons entrer dans Rails. Rails est amour. Rails - si Ruby est son langage. OK, tout comme PHP, tout comme Python. C'est un langage de haut niveau, pas comme C. Un milieu à faible niveau de langage C dans le sens que Ruby vous n'avez pas à vous soucier de la mémoire réaffectation, et pointeurs, et ce genre de choses. Mais Rails est ce programme qui a été écrit en Ruby. Et il utilise Ruby, afin d'avoir cette cadre, pour que vous soyez en mesure de construire des applications web impressionnants. Donc, vous devez d'abord installer Ruby sur votre machine, mais la plupart des machines déjà que. Et puis installer les rails sur le dessus de celui-ci. Nous allons en parler plus tard. Et pourquoi Rails? Donc, MVC, c'est le contrôleur de vue du modèle nous avons parlé un peu peu, rend tout plus simple car il divise les choses qui sont conceptuellement différent dans différents parties de votre application. Moins de temps passé sur les problèmes de bas niveau, à nouveau, et très, très populaire en ce moment. Donc, pour tous ceux qui sont intéressés par la scène de démarrage, ou dans quelque chose comme le démarrage d'entreprises, et les gens dans le marché de la technologie qui sont démarrer leur propre entreprise en ce moment sont vraiment, vraiment fans de Ruby sur Rails parce que c'est si rapide. Ainsi vous pouvez obtenir quelque chose et le fonctionnement en moins d'une journée, et c'est vraiment un très convaincante argument pour utiliser Ruby. Et Rails 4.0 - il est très frais du four maintenant. Rails Donc 4.0 - Je pense que la première version était en Mars de cette année. Et il est vraiment sympa, il a tout sortes de nouvelles fonctionnalités cool. Donc, Ruby on Rails est un framework qui est constamment mis à jour pour avoir tous de la nouvelle technologie. La première fois que j'ai essayé d'utiliser Ruby on Rails, j'ai eu ce problème parce que je créé ma première application web, et il était exactement comme ça. Ainsi, il crée l'ensemble de ces fichiers pour vous, et je n'avais aucune idée de ce que - c'est quoi? Il a créé tous les fichiers, et je ne voulu créer un programme simple, un site HTML simple. Et je ne pouvais même pas faire n'importe quoi. J'ai donc été un peu dépassés. Mais c'est l'une des choses que une fois que vous comprendre, tout devient si beaucoup plus claire. Donc, ne pas être submergé par la première vue de ce que vous créez dans un premier temps. Donc ce qui arrive est Rails crée tous ces fichiers. Donc, l'un des c'est doc, documentation. Db, qui est lié à la base de données. Lib, qui a bibliothèques connecter. Publique, le script, et certaines choses. À peu près tout ce que vous allez vous inquiétez est sur le dossier de l'application, là-haut. C'est le dossier qui contient votre application. Tous les autres fichiers - certains d'entre eux sont importants, et que vous êtes va apprendre à ce sujet plus tard. Mais ils sont juste là pour contenir le cadre. Ainsi, les premières pierres angulaires de la maison vous les gars sont la construction, OK? Mais le dossier de l'application - c'est une vraiment important. Et le dossier de l'application dispose d'actifs. Actifs est à peu près tout cela vient. Images par exemple, tout ce qui est statique qui va être téléchargée à votre site Web. Ainsi images, JavaScript, CSS - ce genre de choses sont actifs. Contrôleurs - nous allons parler plus sur ce sont les contrôleurs, les modèles, et les champs d'une seconde. Et les aides sont des fonctions que vous peuvent utiliser partout dans votre code pour vous aider à faire quelque chose. Des fonctions telles que consignées, par exemple - user.loggedin. C'est une fonction que probablement vous avoir à utiliser dans toutes les pièces de votre application. Ainsi, vous pouvez mettre quelque chose comme que votre aide. Enveloppes - c'est si vous allez envoyer un e-mail à vos utilisateurs, vous vouloir utiliser un logiciel de messagerie. Et les modèles et les points de vue, nous allons de parler de ça maintenant. Ainsi, le contrôleur de vue du modèle, qui est la pierre angulaire de base de Ruby on Rails, et la plupart des cadres de nos jours, pour être honnête. Encore une fois, nous nous séparons tous notre code en trois parties distinctes. Le modèle - le modèle est fondamentalement la base de données. Il gère les choses dans la base de données. Ainsi, chaque table dans la base de données a une fichier correspondant dans le modèle. Il est donc une sorte de tableau pour vos utilisateurs. Donc, vous êtes stocker des informations comme le nom d'utilisateur, leurs e-mails, leur adresse, leur mot de passe, et des choses comme ça. Vous allez avoir un fichier dans le modèle utilisateur appelé rb - rb pour Ruby. Et là, vous allez avoir tous des méthodes et variables. Les variables vont correspondre pour le nom d'utilisateur, le courrier électronique, et tout. Et vous allez avoir les méthodes. Ce sera quelque chose de relatif - vous allez gérer cette information dans la base de données. Pour créer un modèle avec Rails, il suffit d'utiliser Rails génèrent. Et de créer des choses dans Rails, vous réellement besoin du terminal. C'est donc une très borne cadre fondé. Vous venez de vous connecter dans le terminal, et ne Rails, génèrent modèle. Et le nom de l'utilisateur est le modèle. Et je veux juste avoir deux variables, deux colonnes, à ma table. C'est donc email. Le courrier électronique est une chaîne de type. Mot de passe, mot de passe est également une chaîne de type. Ce sont les deux seules choses. C'est une sorte de une table utilisateur simpliste. Mais vous pouvez tout à fait mettre un cent chose est là si vous voulez. Et Rails rend également très, très simple d'avoir tous sortes de relations de base de données. Donc, en général, lorsque vous avez des tables dans votre base de données, ils ne sont pas très bien indépendants l'un de l'autre. Réfléchissons. Vous souhaitez acheter et vendre produits en ligne. OK, si vous avez un site web où vous envie d'acheter et de vendre des produits. Ainsi, chaque utilisateur dispose de nombreux produits qui cet utilisateur est prêt à vendre. Et chaque utilisateur dispose également de nombreuses transactions qui sont en cours, ou quelque chose comme ça. Et les transactions sont avec un autre utilisateur. Chaque transaction appartient à deux utilisateurs différents. L'utilisateur qui achète et l'utilisateur qui vend. Donc, ce sont les soi-disant relations de base de données. Et ici, nous avons exactement ces mots clés, a beaucoup et appartient à. Ce sont les plus importants. Et vous allez juste de dire, pour exemple, il s'agit de l'exemple d'un modèle en 2017 le site de Harvard. Encore une fois, les élèves ici - chaque étudiant sur le site, étudiant est un modèle, une table de base de données. Chaque élève avait beaucoup de livres parce que vous pourrait dire, quels sont vos favoris livres, à droite. Ainsi, chaque livre appartient à un étudiant ici. Et attribuer accessible - C'est juste que ceux qui sont les variables. Ce sont les variables accessibles à partir de ce modèle. Et les variables sont l'auteur de le livre, la description, le genre et titre du livre. Il suffit donc de l'information concernant le livre. Et ici, j'ai une méthode qui trie simplement tout. Donc, définir et finissent ici, c'est juste dire, voici ma méthode. Self.sorted_all. C'est juste, donne-moi tout trié, et c'est ainsi que vous implémentez l'algorithme de tri, ce qui est assez facile. Mais fondamentalement, c'est la façon dont un modèle ressemble, OK. Quelqu'un at-il des questions concernant cette chose de base de données? Relations? Est-ce clair? Oui. PUBLIC: Pouvez-vous faire l'algorithme de tri? GABRIEL GUIMARAES: L' algorithme de tri, OK. Lorsque vous vous êtes habitués à la syntaxe Ruby, ça va être clair. Mais fondamentalement, elems est Book.all. Donc livre est le nom de mon modèle. Lorsque vous créez un modèle, il est livré avec toutes sortes de belles méthodes pour vous. Donc dot.all est une méthode qui retourne tous les livres. Mais trouver, par exemple, serait chercher des un livre et retourner ce livre, ou quelque chose comme ça. Et si elems est tout. Et je dis juste elems.sort. Trier est une fonction intégrée dans Ruby. Et, faire ab. Donc, ce ne sera de nouveau - vous allez trier. Mais vous allez obtenir cet argument pour moi. Et l'argument utilise - c'est l'un des les choses les plus difficiles à Ruby en fait, ce faire chose. Mais une fois que vous comprenez tout vient très, très intuitif. Ainsi, le ab, cela veut dire l'endroit titulaires que je vais utiliser - comme les variables que je vais utiliser, sont va être appelé a et b. Et ce sont les livres. Parce sorte doit comparer éléments, rappelez-vous que? Ainsi, lorsque vous triez les choses, vous comparer deux éléments. Je vais vous dire que chaque fois que vous allez comparer - c'est donc, je suis de passage trier un argument. Et l'argument est tout de do à et ici, OK? Et cet argument est juste dit genre comment comparer. Trier serait travailler ici, mais il serait de comparer avec leur défaut comparant algorithme. Je veux de comparer dans un très spécifique manière, à savoir, quand le livre a été créé, quand chaque livre a été créé. Je dis donc, dire le nom de la première est un livre et le nom de l' deuxième livre que b, je veux tri pour trier quelque chose basé sur ce b.created_at symbole bizarre, a.created_at. Et ce symbole étrange est un raccourci car si l'un est plus grand que l' autre, retourner 1. Si l'on est égale à la autre, revenir à zéro. Si l'on est plus petit que l' de l'autre, le retour moins 1. C'est ce que ce symbole est bizarre. Mais ce n'est pas important. Je veux dire, ce que je veux vous les gars pour obtenir est maintenant l'idée que la base de données - vous pouvez avoir le modèle là. Donc, vous n'avez pas à vous soucier de connecter et d'utiliser l'instruction SQL, et des choses comme ça. Il peut également créer des portes à injection SQL et tous sortes de problèmes de sécurité. Dans ce cas, vous n'avez pas s'inquiéter à ce sujet. Vous venez d'utiliser des méthodes comme book.all. Et que, dans le fond, bien sûr, va à votre base de données, et il est va utiliser une instruction SQL pour obtenir tous les livres. Mais vous n'avez pas à s'inquiéter à ce sujet. C'est l'emporter, OK? Et quand vous avez une déclaration de belongs_to comme ceci, cela signifie que une fois que vous avez un objet livre, vous peut voir quel est son élève. Alors, qui élève a de ce livre? Ainsi, nous pouvons simplement utiliser book.student, et qui vous donne ce que l'élève est. Et c'est une fonctionnalité vraiment avoir. OK, maintenant la vue. Ainsi, le modèle est ce qui interagit avec la base de données, non? La vue est fondamentalement HTML, et CSS, et un peu de JavaScript. Et c'est ce que l'utilisateur voit réellement. L'utilisateur ne va pas voir votre base de données. Il va voir des données de la base de données intégrée dans le visualiseur. Ruby on Rails, il est vraiment simple de faire des champs. Tout d'abord, parce qu'elle crée déjà pour vous, hors de la boîte, une mise en page. Une mise en page est fondamentalement quelque chose que - si toutes vos pages ont un logo sur le dessus et, je ne sais pas, certains menus ou quelque chose comme ça, que toutes vos pages ont en commun, alors vous n'avez pas besoin de créer beaucoup, beaucoup, beaucoup HTML dossiers où tous les fichiers ont cette même code HTML. Je veux dire que c'est stupide parce que vous êtes juste répéter le code entre les différents fichiers. Ce n'est certainement pas une bonne approche. Donc, Ruby on Rails crée cette mise en page pour vous. Et cela est en train de dire, toutes mes pages vont avoir cette HTML, cette tête titre ici, et ceux qui sont le style lien fiche tag. Branchez ici toute ma CSS. Branchez ici toute ma JavaScript et des balises meta. C'est juste quelque chose qu'ils faire automatiquement pour vous. Et puis, finir la tête, maintenant ici commence le corps. Et maintenant c'est mon contenu réel. Donc, si je voulais mettre quelque chose comme un Menu ici, je le mettre à droite sur cet endroit, ou quelque chose comme ça, de sorte que l'ensemble de mes pages partagé. Ainsi, la mise en page est partagé par toutes les pages. Maintenant que le rendement ici dit simplement, sans Quel que soit ce pages est en, juste brancher le contenu de cette page ici, OK? Et maintenant, c'est, par exemple, le contenu d'une page qui va être branché sur cette déclaration de rendement automatiquement par Rails. Mais ceci est une disposition commune par toutes les pages. Et ceci est un exemple d'une page. Et c'est exactement la page qui répertorie tous les livres. C'est donc un tableau HTML de base en haut. Donc Liste des livres, un titre, l'auteur, description, genre. Et ici, nous utilisons, à nouveau, certains Syntaxe Ruby, @ books.each-- @ Type de dit que votre variable est globale dans un sens. Parce que cette variable était en fait déclaré dans le dispositif de commande qui vous allez voir tout de suite. Mais il suffit de prendre pour acquis que cette @ Livres est une variable qui est une liste de tous les livres. Donc books.each, ne, et encore, ce n'est juste dire à quel point voulez-vous nommer chacun des itérateurs de sorte que nous ne faisons pas à se soucier de quatre, int i blah, blah, blah. Nous venons de prendre chacun des éléments et les utiliser. Alors ce livre est fait, et puis juste impression ici. book.title, book.author, book.description, et blah, blah, blah. Et voici un link_to. Donc link_to est juste une balise de lien que l'utilisateur peut cliquer sur et va à un autre site. Link_to, montrer ce livre en particulier. Donc, si l'utilisateur est très intéressé par ce livre, il peut alors cliquer sur spectacle. Ou cliquez sur modifier, s'il veut éditer le livre. Ou détruire, s'il veut supprimer le livre de la base de données. OK, ne qui fait sens? Bon. Enfin, le dispositif de commande. Donc, fondamentalement, le contrôleur est l'interface entre l' modèle et la vue. Ainsi, le modèle est la partie de votre code qui a la base de données - chaque table de la base de données a un fichier correspondant dans le modèle, et ainsi de suite. Et comment faire le modèle et la vue interagir? Ainsi, par l'intermédiaire du contrôleur. Qu'est-ce qu'un contrôleur fait est qu'il est le modèle pour quelque chose comme, par exemple, mettre tout le livre à l'intérieur d'une variable. Comme celui-ci, @ livres. Et il doit être global avec ce à chose parce que ça va être consultée par la vue. Il ne va pas être utilisé dans les le contrôleur lui-même. Et il ralentit juste information la vue va utiliser. Par exemple, le contrôleur vérifie si l'utilisateur est en ligne. Et comment fait-elle cela? Il demande en fait le modèle parce que le modèle a l' des informations sur l'utilisateur. Il dispose d'une table d'utilisateurs, les livres table, d'autres tables. Ainsi, le contrôleur demande si l'utilisateur est en ligne. Si l'utilisateur est en ligne, le dispositif de commande gère les choses comme mettre un cookie, ou quelque chose comme ça, pour mettre le timbre à-dire que l'utilisateur est en ligne. Pas besoin de vous connecter à nouveau. Et il va charger une variable appelée l'utilisateur, par exemple, que le vue peut utiliser. Et la vue peut mettre quelque chose ici, par exemple, accueillir user.name. Cela va donc à dire, accueil John, bienvenue James - quelque chose comme ça, non? Donc, toutes ces variables utilisées dans les vue vont être chargé dans le contrôleur et vont être tiré vers le haut à partir du modèle. C'est l'exemple d'un automate. Nous avons donc, fondamentalement, chaque - nous appelons ces actions de choses. Donc index est une action. C'est une fonction Ruby. C'est une méthode Ruby là. Mais pour les appels de contrôleur ces actions de choses. Et chaque action est liée à un itinéraire. Donc, ici dans cette voie, par exemple, est un Obtenez Compte / livres. Donc, si vous allez à harvard2017.com/books, ce qui va arriver, c'est ce code est va être appelé. Et il s'agit d'un fichier - Permettez-moi d'ouvrir ce vrai rapide. Il ya un fichier appelé fichier brut. Ce n'est pas l'ouverture. Donc, il ya un fichier appelé fichier brut qui correspond essentiellement - oh, maintenant c'est l'ouverture. Ici, les routes. Alors correspond essentiellement une souche, activation / nouveau par exemple, à quelque chose dans le contrôleur. Donc, il ya ce contrôleur appelé le contrôleur d'activation, mais ici, nous avons les livres, par exemple. Alors matchs - livres / nouvelle, le contrôleur livres, l'action nouvelle. Donc, fondamentalement, très simple choses. Et ici, si vous aviez à obtenir / livres, réduire l'ID des livres, réduire nouveau, vous allez aller à cette Méthode Ruby là-bas. Donc, ici, ce que cet indice est fait est juste chargement livre journal. C'est quelque chose qui - Je me connecte tous les livres dans un journal. Et démêler tout cela. Donc, cela va revenir tous les livres rangés. Il s'agit, à nouveau, dans la base de données. Il s'agit donc d'une méthode du modèle. Vous avez vu ce procédé étant créée dans le modèle. Maintenant c'est juste chargement tous les livres et mettre que dans une variable qui on peut le voir par la vue. Parce que vous ne pouvez pas, dans le milieu de votre code HTML, vous ne pouvez pas appeler quelque chose directement à partir du modèle, parce que, pour deux raisons. D'abord, pour des raisons de sécurité car ce n'est pas vraiment intéressant de chargement des informations directement à l'intérieur chaque HTML qui se trouve dans la base de données. Et en second lieu, pour garder votre Code vraiment organisé. Donc séparer exactement le différentes parties. Donc BookLog.sorted_all, ceci dans le base de données et cela va mettre en une variable @ livres. Et maintenant, cette variable est accessible dans votre code HTML. Ainsi, vous pouvez simplement mettre tous les livres il tout comme nous avons fait, ici. Il s'agit de la variable. Et visites respond_to faire | Format |, c'est juste une sorte de syntaxe Ruby pour si l'utilisateur me demande pour code HTML, je vais répondre avec le code HTML. Si l'utilisateur me demande avec le code JSON, qui est quelque chose que les applications Web utilisent pour communiquer entre eux, ils généralement utiliser JSON ou un autre genre de chose. Donc, il répond simplement en utilisant les deux formats différents. Mais pour un utilisateur normal, ce n'aurait pas besoin d'être ici. Vous voulez bien répondre avec HTML, et c'est très bien. Ne vous inquiétez donc pas vraiment beaucoup à ce sujet. C'est la seule ligne de code dans notre contrôle comme il est charger de HTML base de données, mise en quelque chose qui est accessible par la vue. Et puis de nouveau, donc ici Je crée des livres. Mais pour créer des livres, j'ai besoin d'un étudiant parce que j'ai besoin de savoir l'étudiant dont les livres font partie de ce, à droite. Alors @ étudiant = étudiant. Étudiant, de nouveau, nous commençons avec un grand S est l'élève modèle. OK, donc c'est l'élève modèle, c'est le journal de livre de modèle. Student.find, donc je vais trouver un étudiant à l'aide de l'ID de paramètres. params.id, c'est juste me chercher la valeur ID de ce qui a été adoptée - et l'URL. Juste aller à la recherche de cet élève. Et d'abord, nous allons vérifier si l'étudiant a des chansons et bla, bla, bla. Et ce traite déjà la cas où l'étudiant n'existe pas, par exemple. Et puis, d'autre, nous répondons simplement à la même chose en utilisant HTML. Et puis nous pouvons laisser l'utilisateur créer leurs chansons. Donc, ce qui est nouveau. Nouveau est généralement utilisé pour, laisser l'utilisateur de créer quelque chose. Et puis il ya l'action de créer C'est généralement utilisé pour - effectivement mis les chansons dans la base de données ou quelque chose comme ça. Mais une fois que vous commencez à utiliser Rails, ces choses vont être beaucoup, beaucoup plus clair. OK, refroidir. Vous avez des questions à ce jour? Est-ce que cela fait sens avec les contrôleurs, modèles, les champs - ouais? Encore une fois dans votre application Rails - si tout cela peut être trouvé ici. Donc, vous avez de l'application, les contrôleurs, les sont tous mes contrôleurs. Ainsi, par exemple, des livres de contrôle. C'est celle que nous venons de voir. Et puis vues. Et chaque contrôleur dispose d'un vue associée, non? Donc automatiquement lorsque vous appelez cette indice ici, par exemple, ou lorsque vous appeler ce nouveau livre, la vue, livres, nouvelle va être appelé. Donc Rails fait tout automatiquement pour vous. Ainsi, chaque contrôleur a un associé voir et tous les modèles - ici j'en ai un, deux, trois, quatre, cinq modèles. Mais il s'agit d'un modèle de l'élève, de sorte que ceux sont les variables que tous les les élèves ont - localisation, date de naissance. Les étudiants sont un peu plus compliqué parce que chaque élève a plus autre méthode qui lui est associé. Mais ce n'est que la manipulation de la table qui avait tout l' étudiants dans la base de données. Et, OK, l'installation de Rails. Installation des rails, pour être honnête, n'est pas la chose la plus simple. Mais une fois que vous avez passé tout, il est très, très facile. Donc, l'installation de Rails, vous allez simplement à la site, rubyandrails.org / téléchargement et suivre leurs instructions. Télécharger tout. Et vous pouvez le faire soit en appareils, dans le CS50 d'appareils, sur Windows, sur Mac, ou de toute exploitation système de votre choix. Ruby on Rails fonctionne sur tout. Les chances sont que vous avez déjà installé Ruby si vous avez un Mac ou - dans les appareils, je pense que Ruby est - Je ne suis pas sûr. Et puis vous avez juste besoin de l'installer. Et si vous voulez créer un nouveau application web, il vous suffit faire Rails, nouveau blog. Rails, de nouvelles - Je ne sais pas - le nom de votre site web. Et c'est aussi simple que. Il va créer tous les fichiers je viens de vous a montré. Mais le modèle, la vue et l' contrôleur ne vont pas être encore peuplé. Tu vas juste avoir à y aller et remplir ces trois dossiers. Donc les chances sont, vous voulez créer un modèle, par exemple, mettre en œuvre un premier modèle. Encore une fois, en essayant toujours de mordre plus petit bits d'un problème à la fois. Et puis, disons, créer un modèle pour vos utilisateurs. C'est la première chose si vous avez des utilisateurs. Ensuite, je veux créer un modèle comme nous l'avons montré ici. Rails, générer, modèle, l'utilisateur, puis chaîne de courriels - que nous avons ici. Et il suffit de créer ce modèle, oui. Rails génèrent modèle e-mail de l'utilisateur: chaîne mot de passe: chaîne. Et puis vous créez un contrôleur qui traite de l'utilisateur. Et vous pouvez créer de nouveaux utilisateurs et faire ce genre de choses. Et puis vous pouvez passer à la création le reste de votre site. Cool, des questions? Oui. PUBLIC: [inaudible] GABRIEL GUIMARAES: Oui, oui, vous avez certainement d'aller dans la vue. C'est une très bonne question. Donc, la vue est ce qui fait contient votre code HTML. Donc, c'est ce que les utilisateurs vont voir. Là encore, ici, il s'agit d'un exemple de vue. Il a du code HTML et Ruby code au même moment. Ainsi, le code Ruby est là pour mettre les choses à partir de la base de données, par exemple, qui ont été chargés sur le contrôleur. Alors que variable @ livres, par exemple, dispose de tous les livres et la table livres à la base de données. Nous nous sommes assurés qu'il avait dans le contrôleur. Et la vue - chacune des pages de votre site est hors va avoir une vue associée. Donc, si vous allez à la page d'accueil, le première page, harvard2017.com. Cela montre une page. Et puis vous allez à réduire profil. Cela va aller à un contrôleur c'est un contrôleur de profil. Et le contrôleur de profil va pour vous donner la vue de profil. Et la vue de profil va regarder un peu comme ça, mais ça va avoir des informations sur l'utilisateur, et pas sur les livres. C'est donc le code HTML et CSS et ceux choses que l'utilisateur voit avec le code Ruby - qui imprime effectivement les choses à partir de la base de données. Est-ce plus clair? J'espère. AUDIENCE: Le code HTML est utilisé pour fait de rendre le site que l' utilisateur voit, mais le code Ruby est ce qui rend le travail de site Web? GABRIEL GUIMARAES: Le code Ruby est converti en HTML. Alors, que l'utilisateur obtient est que HTML, OK? C'est seulement HTML. Cette book.title va se convertir à l' la valeur de book.title en HTML, OK. Donc, c'est tout sur le serveur, et ainsi de cela dépend de ce que les livres sont là dans le serveur en ce moment. Mais ce que le serveur serait immédiatement sens est que le code HTML, OK. Mais la vue donne juste la mise en page de ce que le HTML allait ressembler et que les variables vont être. Ce genre de une impression, OK. Ces choses là sont fondamentalement imprimer les aboutissants. Ils vont afficher les variables, OK. Donc, ce n'est que HTML, ceux - auteur, titre, description. C'est le contenu statique. Cela ne va pas changer. C'est code HTML tout simplement. Ce sont les sorties d'impression pour les variables - choses qui dépendent. Cool, d'autres questions? Bon? Oui. PUBLIC: Je pense que vous faisiez tous l'édition dans un autre texte programme d'édition. Faut-il télécharger aussi que? GABRIEL GUIMARAES: Oui, j'aime cette éditeur de texte appelé TextMate. Et c'est vraiment bien. Il est bien adapté à Ruby. Il couleurs choses très proprement. Donc, TextMate, T-E-X-T. Je vais mettre que, tenez - Je veux dire que vous pouvez utiliser gedit ou ce que vous voulez. Mais ceci est spécifique pour Mac, et ce est vraiment bien car il met tous vos fichiers là-bas. Et en Ruby on Rails, vous devez pour passer des fichiers beaucoup. Donc, c'est beaucoup, beaucoup de fichiers simplement passer d'un fichier, passer à un fichier ou l'autre. Donc TextMate est un très bon, mais il ya beaucoup là-bas. Plus de questions? OK, oui? PUBLIC: Y at-il un développement mobile par Ruby on Rails? GABRIEL GUIMARAES: j'ai entendu des choses. Je ne les ai pas utilisé. Vous pourriez la recherche plus à ce sujet. Je ne sais pas s'il ya une bonne chose là-bas. OK, oui? PUBLIC: [inaudible] GABRIEL Guimarães: Non Rails, probablement tableau Ruby. Ouvrez une fenêtre de terminal et le type, "Ruby". Oui, sans doute, et puis vous suffit d'installer Rails. Mais si vous allez installer la nouvelle Rails 4.0, que je recommande fortement, vous devez télécharger Ruby 2.0. C'est la nouvelle trop. Et les nouvelles Rails 4.0 a quelque chose vraiment cool il le fait pour les actifs. Il gère des actifs. Les actifs sont de nouveau les images, les fichiers CSS, et les fichiers JavaScript. Donc, une chose vraiment bien que Ruby on Rails ne vous est tous ceux CSS fichiers que vous avez et tout - il regroupe tout juste en place dans un énorme fichier, sans espaces ni quoi que ce soit, pour réduire au minimum le moment où l'utilisateur a besoin de télécharger ce code à partir de votre serveur. Alors, quand vous voyez dans votre ordinateur, il est va avoir comme 15 fichiers CSS. Ou beaucoup beaucoup de fichiers CSS, différents. Mais à la fin de la journée, ce Rails automatiquement ne vous est il met le tout dans un grand fichier de sorte qu'il réduit au minimum le temps de la demande. C'est vraiment cool. Oui? PUBLIC: [inaudible] GABRIEL GUIMARAES: Exactement. Ainsi, l'intégration de Google Maps. C'est une API JavaScript de Google. Donc, je suis allé sur le site de Google. Ils ont cette API Google Maps et je téléchargé le code et l'a intégré dans ma vue. Donc ce que je devais faire là-bas c'est que je devais obtenir l' les emplacements de la base de données. Cela a été fait dans le contrôleur. Je suis donc allé à la commande - où est le contrôleur. Le contrôleur était comme ça. Vous avez tous les endroits de la étudiants, mis tout cela dans un grand variable, une grande liste, que a tous les emplacements. Et dans la vue, parce que le JavaScript API est quelque chose dans le voir, non? Parce que JavaScript s'exécute dans votre code HTML code, il va être envoyé à l'ordinateur de l'utilisateur. Et dans la vue, j'ai chargé tout cela informations dans l'API Google. Et il a fait tout cela pour moi, ce qui est vraiment cool. Mais si vous voulez utiliser des choses dans le back-end, et c'est comme une bibliothèque, par exemple, encore une fois - l'intégration avec Facebook. C'est quelque chose que beaucoup, beaucoup, de nombreuses applications utilisent de nos jours. Alors que votre intégration avec Facebook parce que c'est tellement plus facile de juste vous connecter avec Facebook pour créer de un compte et bla, bla, bla. Ensuite, il suffit d'utiliser un petit bijou et c'est comme simple que d'aller à votre fichier de bijou. fichier Gem est un fichier appelé fichier de bijou dans le répertoire source de votre Ruby on Rails projet. Il suffit d'aller là-bas et ajouter nouveau joyau. Et vous pouvez le retrouver sur Google. Il ya beaucoup, beaucoup, beaucoup de pierres précieuses. Il ya celui qui fait spécifiquement ce pour l'intégration de Facebook. Je ne suis pas sûr de ce que le nom de celui-ci. Il suffit de Google et vous êtes aller pour le trouver. OK, d'autres questions? Génial, merci d'être venus.