GABRIEL GUIMARAES: Dies ist CS50. Willkommen Amazing Web Apps mit Ruby on Rails. Also für jeden, der interessiert ist in Web- Entwicklung und Erstellung von Webseiten, Web- Anwendungen ist Ruby on Rails diese wunderbares Werkzeug, dass Twitter, GitHub, Groupon, und alle Arten von wirklich nett, und große, Web-Anwendungen werden mit in in den letzten Jahren. Und es ist ein wirklich, wirklich cool Funktion, ein cooles Tool, weil es neu ist. So ist es all die neuen, leistungsfähigen hat Technologien in einem einge Rahmen, die Sie beschäftigen hilft allerlei erstaunliche Dinge. Aber was ist ein Framework? So ein Rahmen ist im Grunde etwas, das schafft - wenn Sie eine Website zu starten, wenn Sie begonnen von Grund auf, wie Sie öffnen gedit da, und Sie alle wollen zu codieren der HTML-und Code alle Ihre PHP, alle Ihre CSS, alles von Grund auf neu - das ist nur noch eine Menge Arbeit sein. Und einen Rahmen gibt Ihnen buchstäblich Hälfte der Website bereits getan. So starten Sie mit einem halben Website dass alles für Sie da. Wie die Datenbankverbindungen und alle möglichen Dinge, die Sie sich sorgen, etwa, wenn Sie von Grund auf, es zu tun, Sie nicht haben, um über die Sorgen Details niedrigen Niveau. Aber heute werden wir zu einem exportieren Die Websites, die der Neuling von der Klasse von 2017 sind wohl vertraut. Also diese Website ist die Website, die ich hat für unsere Klasse über den Sommer. Es war eine Website, wo die Schüler der die Klasse von 2017 konnte sich anmelden und miteinander interagieren. Und dann ist dies eine Karte - jeder, wo die Menschen sind. Und wir hatten ein Buch Spiel, ein Spiel-Songs wo wir Lieder der Menschen gesehen und Bücher der Menschen. Was sie gerne lesen, was sie gerne hören. Und der interessanteste Teil ist es dass es wörtlich nahm mich 3 Stunden alles davon codieren. Denn wenn ich alles von zu tun hatte Kratzer, wie das Öffnen bis gedit, es würde wahrscheinlich genommen haben mir 20, 30 Stunden. Aber mit Ruby on Rails, weil alles schon für mich festgelegt, es hat mich nur drei oder vier Stunden, oder so ähnlich. Also, was ist Ruby on Rails. Ruby on Rails, wie wir schon wieder sagte, ist ein Rahmen. Dies ist ein Bild eines Rahmens. So wirst du zu beginnen, sind ein Haus, haben Sie bereits die Hälfte der Haus getan. Das ist der Rahmen. Und Ruby on Rails ist genau so. Und Sie sollten es als, Sie beginnen zu denken eine Website, Ihren Web starten Sie Anwendung haben wir bereits die Hälfte davon es getan. Aber zuerst, was ist Rubin? Ruby on Rails verwendet die Modellansicht Controller, der Paradigma ist, die ist eine wirklich interessante - und alle Anwendungen heutzutage verwenden so etwas. Diese Idee der Trennung Dinge in drei Teile, das Modell, die Aussicht, und der Controller. Wir werden ein wenig sprechen dazu später mehr. Erstens, was ist Rubin? Also das ist Ruby. Und das ist das Symbol für die Sprache namens Ruby. Ruby ist eine der newish interpretiert Sprachen, so Script. Es ist eine Sprache, die nicht übersetzt ist wie C. Es ist auf der Flucht zusammengestellt. Also das ist gut, weil, genau wie PHP, beispielsweise ist auch ausgelegt ist nicht kompiliert. Das ist gut, weil seine tragbar. Sie haben also nur den Code gehen von einer Maschine zur anderen. Von einem Linux-Computer mit einem Windows Maschine, auf einen Mac oder Apple-Maschine, oder so ähnlich. Und Sie brauchen nicht zu befürchten Einzelheiten zu jedem der spezifischen Betriebssysteme. Es wird überall funktionieren. Und Ruby ist eine Sprache, die - euch wohl daran erinnern. Die Menschen nutzen die Hash-Funktion implementiert C in der Hash-Tabelle letzte Woche und hatten alle möglichen Segmentierungsfehler. Und dann Dinge Gedanken darüber, ob dass die String-i gibt die Zeichenfolge i hier wurde tatsächlich in Kleinbuchstaben oder Großbuchstaben, oder diese Art von besorgniserregend Details niedrigen Niveau. Nun, in Ruby, wenn Sie wollen, zu implementieren eine Hash-Tabelle, das ist genau, wie Sie eine Hash-Tabelle zu erstellen. Sie sagen, Wörterbuch, das ist der Name meiner Variable = "Hash.new". Und dann Wörterbuch ["foo"] und wenn ich Hinzufügen foo meine Hash-Tabelle, ich bin einfach nur sagen foo ist da. Und dann, wenn ich wollte, um zu überprüfen, ob foo dort war, ich sage nur, wenn Wörterbuch ["foo"] == true return true. Whoa, und das ist Ihr Hash-Tabelle. Das ist die Umsetzung von Hash-Tabelle in Ruby. So kann jeder wollte sie haben könnte verwendet etwas wie Ruby für Last Woche pset, oder? Wir haben alle Arten von Gründen zu wollen , um eine Sprache wie Ruby verwenden. Ruby hat Edelsteine. Gem ist ein Name für eine Art der Bibliothek in Ruby. Also alle Arten von interessanten Features Sie haben kann, zum Beispiel, wenn I möchte meine Anwendung zu integrieren. Das Harvard-2017-Anwendung wurde zu Facebook integriert. So könnten Sie sich anmelden, über Facebook, auf der App. Also, wenn Sie das machen können, sollten Sie nicht tun, brauchen, um über das Senden einige Sorgen HTTP-Anfrage an Facebook, und warten für die Antwort, und zwingt die Reaktion und blah, blah, blah. Sie laden einfach das Juwel, das tut alles für Sie. Und dann haben Sie nicht brauchen Sorgen über alles. Und dann viel Hilfe Online, versteht sich. Es gibt viele, viele, viele Websites, die werden euch sowohl mit Hilfe Ruby und Rails. Und es ist eine Menge Spaß, Code. Genau, weil Sie aufhören, sich Sorgen über diese Probleme nicht so viel Spaß. Wie, wenn etwas Klein-oder Groß-, warum ist dann, und dies geben Ihnen einen Segmentation Fault, und kann man wirklich in die sehr tauchen interessante Sachen. Um in die wirklich cool Probleme tauchen. So Ruby ist, wie an C in einem gewissen Sinn. So wird es nicht zu sein, dass groß der Sprung tatsächlich. So legt, das ist unser Druck App in Ruby. Ich denke, man könnte Druck zu verwenden, aber Puts ist, was jeder benutzt. Also nur puts "Hallo Welt". Sie könnten, oder Sie könnten nicht, haben der umlaufende Klammer "Hallo Welt" dort. Sie können wählen, ob nur oder nicht, dass zu verwenden. Und x = "1". Eine while-Schleife sieht ziemlich das gleiche. Es hat nur weniger Syntax. Es ist eine Art Reiniger ein wenig. Und dann, wenn x> 25 puts "Big!" und else puts "Kleine ...". Und es ist eine Art von C in diesem Sinne. Also, wenn Sie sich darum kümmern, können Sie Ansatz wahrscheinlich verstehen alles, was los ist. Aber es ist leistungsfähiger. Stärker denn mehr als das, es kann die Dinge sind nicht so, dass - eine Art hackage ein kleines bisschen. In C kann man nicht tun, in nur mit einer Linie zu tun. Zum Beispiel stellt "Ich bin # {x}". Dies ist nur Syntax für den Wert setzen hier x und nicht drucken die Zeichen x. In C mussten Sie die d Prozent zu tun, und dann setzen Sie die Variable x nach der Komma hier, oder so ähnlich. Und in Ruby gibt es eine Kurzform für genau das zu tun. Und bringt das, wenn x> 3, so können Sie legte die, wenn alle auf einer Linie. Und dann eine Liste. Listen in C, wie ein Array, müssen Sie verfolgen, wie groß das Array ist oder sonst eine Segmentierung erhalten bemängeln. Ihre Anordnung ist nur ein Typ. Also ist es entweder ein Array zur Verfügung oder eine Anordnung von Zahlen. In diesem Fall habe ich hier eine Liste, das ist ein Array, das die erste hat Element ist ein String, John, und dann vier, zwei - das sind Zahlen. Und dann habe ich nur hinzufügen, eine Liste, die Spitze Klammer, links Der Winkel, drei. Das bedeutet nur, anhängen etwas zu meiner Liste. Also es ist irgendwie interessanter, weil es Wenn Sie dies als nutzen wollte nur eine einfache Liste von ganzen Zahlen, Sie könnten, völlig. Das ist völlig in Ordnung. Einfach den ganzen Zahlen gibt. Aber wenn Sie etwas, das ist tun wollte zwingender hat, dass andere Dinge hat, dass - Ich weiß nicht, alle Arten von Listen in gibt, oder anderen Gegenständen, die mehr sind interessant, können Sie ganz tun. Es ist völlig in Ordnung. Und dann, wenn Sie durch laufen wollen die Liste, die Sie verwenden könnten die mehr C-ish Art von Ansatz. Das ist für die Schleife, um Sie initiieren eine Variable, i = "1", oder i = "0". Und dann gehen Sie, und durchlaufen, und erhalten Sie alle der Elemente. Aber man konnte auch dieses verwenden mehr Rubin-ähnlichen Ansatz. Das ist wie ein list.each. Das ist einfach nur sagen, mich zurück alle Elemente in der Liste. Und mit jedem Element zu tun, nennen sie Elem. Also das ist nur ein Name, was ich bin , mit dem jedem Element. Und jetzt, das wird für alle wiederholen die Elemente und Elem, es geht auf die Art und Weise, die wir zugreifen können dass einzelne Element. So könnte man ganz auf den Stick C Ansatz, aber das funktioniert auch. Und es ist genau das gleiche, OK. Und anders als das, ist es wirklich, wirklich einfach zu Ruby und HTML integrieren seit ihr Jungs interessiert sind in Web-Anwendungen. HTML ist definitiv etwas, das Sie gehen, um eine Menge zu verwenden. Und hier, wenn Sie Ruby stellen wollte in HTML, nur hier zu starten, <%. Das heißt, hier beginnt Rubin. Und dann%>, der Art wie PHP in diesem Sinne. Hier endet Rubin und dann können Sie setzen Sie Ihre, wenn sich hier ein. Und dann habe ich einige Variablen user.logged_in. In Ruby wir in der Regel hinzufügen, die entweder Verhör Zeichen oder Ausrufe Marke, wie ein Bank Charakter, nur um Art unterscheiden zwischen unseren Funktionen. Aber setzt man, dass in Ihrem eigenen Interesse. Es ist nicht etwas, das ändert alles in der Funktionalität. Also, nur um mich daran zu erinnern, dass dies ein Funktion - und Funktionen in Ruby, anstatt C, wie ich sagte bereits, sie müssen nicht die Klammern. So dass in der Sache eingeloggt, das ist eine Funktion, das ist eine Methode. Aber Sie müssen nicht explizit zu müssen, setzen die Klammern drin. Also nur zu fragen, ob der Benutzer die eingeloggt sind, und wenn der Benutzer angemeldet, jetzt HTML beginnt erneut. Also Willkommen, und hier Ich drucke die user.name. Und das ist es. Also das ist ziemlich geradlinig, wie Sie Ruby-Integration mit HTML. Und Ressourcen, wie gesagt, es gibt alle Arten von Ressourcen für Ruby. Sie können alle Jungs schauen sich diese später da sowohl die Video-und die Objektträger, sind los verfügbar online. Und jetzt lass uns in Rails zu bekommen. Rails ist die Liebe. Schienen - so Ruby ist seine Sprache. OK, so wie PHP, genau wie Python. Es ist eine Hochsprache, nicht wie C. Eine Mitte, Low-Level-Sprache C in das Gefühl, dass Ruby die Sie nicht haben Sorgen über Speicher Umverteilung und Zeiger, und diese Art von Dingen. Aber Rails ist dieses Programm, das wurde in Ruby geschrieben. Und verwendet Ruby, um dies Rahmen, für Sie in der Lage zu sein, bauen genial Web-Anwendungen. So haben Sie zum ersten Ruby on installieren Ihre Maschine, aber die meisten Maschinen bereits das haben. Und dann installieren Schienen oben drauf. Wir werden später darüber reden. Und warum Rails? So MVC, das ist das Model-View-Controller wir über ein wenig gesprochen bit, macht alles einfacher, weil es Dinge, die sind unterteilt konzeptionell unterschiedliche in verschiedene Teile der Anwendung. Weniger Zeit auf niedrigem Niveau Probleme verbracht, wieder, und sehr sehr beliebt im Moment. Also für alle, die interessiert sind der Start-up-Szene, oder in etwas wie das Starten von Unternehmen und Personen in der Technologie-Markt, die sind ihr eigenes Unternehmen jetzt sind wirklich, wirklich Fans von Ruby on Rails, weil es so schnell ist. So können Sie etwas zum Laufen zu bekommen in weniger als einem Tag, und das ist wirklich eine sehr überzeugende Argument für Ruby. Und Rails 4.0 - es ist sehr frisch aus dem Ofen jetzt. So Rails 4.0 - Ich denke, die erste Veröffentlichung war im März dieses Jahres. Und es ist wirklich schön, es hat alles Arten von neuen, coolen Features. So Ruby on Rails ist ein Framework, das ist ständig aktualisiert, um alle haben von der neuen Technologie. Das erste Mal habe ich versucht, Ruby on verwenden Rails, hatte ich diese Probleme, weil ich erstellt meine erste Web-Anwendung, und es sah genau so. So schafft all diese Dateien Sie, und ich hatte keine Ahnung, was - was ist das? Es erstellt alle diese Dateien, und nur ich wollte ein einfaches Programm zu erstellen, ein einfache HTML-Website. Und ich konnte nicht einmal etwas zu tun. So war ich ein wenig überfordert. Aber das ist eines der Dinge, dass, sobald Sie verstehen, wird alles so viel klarer. Also nicht von der ersten überwältigt werden Augen, was man auf den ersten erstellen. Also, was passiert ist, Rails erzeugt all diese Dateien. Also einer, dass ist doc, Dokumentation. Db, das ist in der Datenbank stehen. Lib, das ist Bibliotheken anmelden. Öffentliche, Drehbuch, und einige Dinge. So ziemlich alles, was Sie gehen, um Sorgen sind etwa ist die App-Ordner, dort oben. Das ist der Ordner, der Ihre Anwendung. Alle anderen Dateien - einige von ihnen sind wichtig, und du bist werde darüber später lernen. Aber sie sind nur hier, um enthalten den Rahmen. So die ersten Eckpfeiler des Hauses Sie Kerle bauen, OK? Aber die App-Ordner - das ist das wirklich wichtige. Und die App-Ordner verfügt über Vermögenswerte. Assets ist so ziemlich alles, was dass kommt. Bilder zum Beispiel alles, was ist statisch, das wird heruntergeladen werden auf Ihre Website. Also Bilder, JavaScript, CSS - diese Art von Dingen sind Vermögenswerte. Controller - wir gehen, um mehr darüber zu sprechen was sind Controller, Modelle, und Felder in einer Sekunde. Und Helfer sind Funktionen, die Sie können alle über Ihrem Code verwenden Ihnen helfen, etwas zu tun. Funktionen wie angemeldet, für Beispiel - user.loggedin. Das ist eine Funktion, die Sie wahrscheinlich müssen alle Teile der Einsatz in Anwendung. So können Sie etwas wie setzen dass in Ihrem Helfer. Versandtaschen - das ist, wenn Sie sich zu senden sind eine E-Mail an die Benutzer, die Sie wollen ein Mailer verwenden. Und Modelle und Ansichten, wir gehen über dieses Recht jetzt zu sprechen. Also das Modell-View-Controller, das ist die Grundpfeiler der Ruby on Rails, und die meisten Frameworks heute, um ehrlich zu sein. Also noch einmal, trennen wir alle von unseren Code in drei verschiedene Teile. Das Modell - Das Modell ist im Grunde die Datenbank. Es verarbeitet die Dinge in der Datenbank. So wird jede Tabelle in der Datenbank hat ein entsprechende Datei innerhalb des Modells. Also ist es eine Art Tabelle für Ihre Benutzer. Sie sind also die Speicherung von Informationen wie die Benutzernamen, Ihre E-Mails, ihre Adresse, ihr Passwort, und solche Sachen. Du wirst in eine Datei haben das Modell mit der Bezeichnung Benutzer rb - rb für Ruby. Und da wollen Sie alle sind der Methoden und Variablen. Die Variablen gehen zu entsprechen dem Benutzernamen, der E-Mail, und alles. Und du wirst, um die Methoden zu haben. Das wird etwas über sein - Sie gehen, diese Informationen zu verarbeiten sind in der Datenbank. Um ein Modell mit Rails zu erstellen, Sie einfach Rails zu generieren. Und um die Dinge in Rails zu erstellen, tatsächlich benötigen Sie das Terminal. Also es ist ein sehr Terminal basiertes Framework. Sie müssen nur in das Terminal anmelden, und müssen Rails, Modell generieren. Und der Name des Modells Benutzer. Und ich will nur zwei Variablen, zwei Spalten in meiner Tabelle. Also das ist E-Mail. E-Mail ist eine Art Schnur. Passwort ist vergessen auch eine Art Schnur. Das sind die einzigen zwei Dinge. Es ist eine Art vereinBenutzerTabelle. Aber Sie setzen könnte ganz hundert Sache ist es, wenn man wollte. Und Rails macht es auch sehr, sehr einfach, alle haben Arten von Datenbankrelationen. Also in der Regel, wenn Sie Tabellen in Ihrer Datenbank, sind sie nicht sehr viel unabhängig voneinander. Lassen Sie uns darüber nachdenken. Sie wollen kaufen und verkaufen Produkte online. OK, so dass Sie eine Website, wo Sie wollen kaufen und verkaufen Produkte. Jeder Benutzer hat viele Produkte, die dieser Benutzer ist bereit, zu verkaufen. Und jeder Benutzer hat auch viele Transaktionen dass die laufenden sind, oder so ähnlich. Und die Transaktionen mit einem anderen Benutzer. Jede Transaktion gehört zwei verschiedene Benutzer. Der Benutzer, der kauft und der Benutzer, der ist verkauft. Das sind also die so genannte Datenbankrelationen. Und hier haben wir genau die Stichworte, und hat viele gehört. Das sind die wichtigsten. Und Sie gehen nur zu sagen, für Beispielsweise ist dies am Beispiel einer Modell 2017 in der Harvard-Website. Auch hier sind die Studenten hier - jeder Schüler auf der Website, Student wird ein Modell, ist eine Datenbanktabelle. Jeder Schüler hatte viele Bücher, weil Sie sagen konnte, was sind Ihre Lieblings Bücher, rechts. So ist jedes Buch gehört ein Student hier unten. Und Attribut zugänglich - das ist nur zu sagen, diejenigen, die Variablen sind. Dies sind die Variablen zugänglich von diesem Modell. Und die Variablen der Autor von das Buch, Beschreibung, Genre und Titel des Buches. Also nur die Informationen über das Buch. Und hier habe ich eine Methode, die sortiert einfach alles. So definieren und enden hier, das ist nur sagen, hier kommt meine Methode. Self.sorted_all. Das ist einfach, gib mir alles sortiert, und das ist, wie Sie bei der Implementierung die Sortieralgorithmus, Das ist ziemlich einfach. Aber im Grunde ist dies, wie ein Modell aussieht, OK. Hat jemand Fragen zu haben diese Datenbank Sache? Relations? Ist das klar? Ja. ZIELGRUPPE: Können Sie tun die Sortieralgorithmus? GABRIEL GUIMARAES: Die Sortieralgorithmus, OK. Wenn Sie Ruby-Syntax zu gewöhnen, es wird klar sein. Aber im Grunde ist Elems Book.all. So Buch ist der Name meines Modells. Wenn Sie ein Modell zu erstellen, kommt es mit allerlei nette Methoden für Sie. So dot.all ist eine Methode, gibt alle Bücher. Aber zu finden, zum Beispiel, würde für die Suche ein Buch und das Buch zurück, oder so ähnlich. Und so Elems ist alles. Und ich sage nur, elems.sort. Sortieren ist eine integrierte Funktion in Ruby. Und tun ab. Also das ist wieder nicht - Sie gehen zu sortieren. Aber Sie bekommen werden dieses Argument für mich. Und das Argument verwendet - dies ist einer der die härteren Dinge in Ruby tatsächlich, Dazu Sache. Aber wenn du einmal alles verstehen kommt sehr, sehr intuitiv. Also das ab, ist dies der Ort zu sagen Inhaber, die werde ich nutzen - wie die Variablen werde ich nutzen, sind gehen, um A und B genannt werden. Und das sind die Bücher. Also, da muss Art vergleichen Elemente, daran erinnern? Also, wenn Sie die Dinge zu sortieren, können Sie Vergleichen zwei Elementen. Ich werde sagen, dass jedes Mal, Sie gehen zu vergleichen - so ist dies, ich bin vorbei , um ein Argument zu sortieren. Und das Argument ist alles von do zu, und hier, OK? Und dieses Argument ist nur zu sagen Art, wie man miteinander vergleichen. Sortieren wäre hier zu arbeiten, aber es würde mit ihr vergleichen Standardalgorithmus vergleicht. Ich will, dass es in einem sehr spezifischen vergleichen Weise, nämlich dann, wenn das Buch erstellt wurde, wenn jeder Buch wurde erstellt. Also ich sage, sagen Sie den Namen des ersten Buch ist ein und der Name des zweiten Buch als b, möchte ich Art zu sortieren etwas auf dieser Basis b.created_at seltsame Symbol, a.created_at. Und das seltsame Symbol ist eine Kurzform denn wenn man größer ist als die andere, kehren ein. Wenn man gleich das ist anderen, Null zurück. Wenn eine kleiner ist als die andere, Rück minus 1. Also das ist, was das seltsame Symbol ist. Aber das ist nicht wichtig. Ich meine, was ich will euch zu bekommen Jetzt ist die Idee, dass die Datenbank - Sie können das Modell dort zu haben. Sie müssen sich also keine Sorgen zu machen Anschluss und Verwendung SQL-Anweisung, und solche Sachen. Es kann auch Türen zu schaffen SQL-Injection und alle Arten von Sicherheitsproblemen. In diesem Fall, brauchen Sie nicht Sorgen darüber. Sie verwenden nur Methoden wie book.all. Und, dass im Hintergrund natürlich wird zu Ihrer Datenbank gehen, und es ist gehen, um eine SQL-Anweisung , alle Bücher zu bekommen. Aber Sie müssen nicht zu haben, Sorgen darüber. Das ist das Mitnehmen, OK? Und wenn Sie eine belongs_to Äußerung so bedeutet das, dass wenn Sie ein Buch-Objekt, müssen Sie sehen kann, was ist seine Schüler. So, die Schüler dieses Buch hat? So können wir nur nutzen book.student und das gibt, was die Schüler ist. Und das ist ein wirklich verfügen zu müssen. OK, jetzt die Aussicht. So ist das Modell, was interagiert mit der Datenbank, oder? Die Ansicht ist im Grunde HTML und CSS, und einige JavaScript. Und das ist, was der Benutzer tatsächlich sieht. Der Benutzer wird nicht zu sehen Sie Ihre Datenbank. Er wird einige Daten aus der zu sehen Datenbank im Viewer eingebettet. Ruby on Rails macht es wirklich einfach auf Felder zu machen. Erstens, weil es schafft bereits für Sie, aus der Box, einem Layout. Ein Layout ist im Grunde etwas, das - wenn alle Seiten ein Logo auf der Oberseite , und ich weiß es nicht, einige Menü-oder so ähnlich, dass alle Ihre Seiten gemeinsam haben, dann können Sie nicht tun, müssen viele, viele, viele HTML erstellen Dateien, in denen alle Dateien haben, dass elbe HTML-Code. Ich meine, das ist dumm, weil Sie gerade sind Wiederholen Code zwischen verschiedenen Dateien. Das ist definitiv kein guter Ansatz. So Ruby on Rails erzeugt dieses Layout für Sie. Und das ist nur zu sagen, alle meine Seiten werden diesen HTML haben, diesen Kopf Titel hier, und das sind Stylesheet-Link-Tag. Stecken Sie hier alle meine CSS. Stecken Sie hier alle meine JavaScript und einige Meta-Tags. Das ist einfach etwas, das sie automatisch für Sie tun. Und dann, am Ende der Kopf, jetzt Hier beginnt der Körper. Und das ist jetzt meine eigentliche Inhalt. Also, wenn ich auf etwas setzen, wie eine wollte Menü hier, würde ich es direkt über setzen dieser Ort, oder so ähnlich, so, dass alle meine Seiten teilte es. Also das Layout wird geteilt von allen Seiten. Jetzt nur noch, daß der Ertrag hier sagt, keine welche Seiten das ist in nur Materie stecken Sie den Inhalt, dass Seite hier, OK? Und jetzt ist dies beispielsweise die Inhalt einer Seite, die gehen, um sein in diesem yield-Anweisung gesteckt automatisch von Rails. Aber das ist ein Layout geteilt von allen Seiten. Und dies ist ein Beispiel für eine Seite. Und das ist genau die Seite dass alle Bücher aufgelistet sind. Das ist also eine einfache HTML-Tabelle bis oben. So Auflistung Bücher, ein Titel, Autor, Beschreibung, Genre. Und hier setzen wir wieder einige Ruby-Syntax @ books.each-- @ Art sagt, dass Ihre Variable in einem globalen Sinn. Da diese Variable war eigentlich in der Steuereinheit deklariert die Sie gehen zu Recht jetzt sehen. Aber gerade für selbstverständlich, dass diese @ Bücher ist eine Variable, die eine Liste ist alle Bücher. So books.each, zu tun, und auch dies ist einfach nur sagen, wie Sie zu nennen wollen jeder der Iteratoren, so dass wir nicht haben, um über eine vier Sorge, int i blah, blah, blah. Wir nehmen nur jedem der Elemente und verwenden. Also das ist das Buch, und dann einfach drucken hier. book.title, book.author, book.description und blah, blah, blah. Und hier ist ein link_to. So link_to ist nur ein Link-Tag dass ein Benutzer und klicken Sie auf geht zu einer anderen Website. Link_to, zeigen, dass insbesondere Buch. Also, wenn der Benutzer sehr interessiert, ist dieses Buch, dann ist er auf der Messe klicken können. Oder klicken Sie auf Bearbeiten, wenn er will , das Buch zu bearbeiten. Oder zerstören, wenn er löschen möchte das Buch aus der Datenbank. OK, ist das sinnvoll? Gut. Schließlich ist die Steuerung. Also im Grunde die Steuerung Die Schnittstelle zwischen dem Modell und die Aussicht. So ist das Modell der Teil der Code, der Datenbank hat - jede Tabelle in der Datenbank hat eine entsprechende Datei im Modell, und so weiter. Und wie das Modell und der Blick interagieren? So durch die Steuerung. Was für ein Controller tut, ist es die Modell für so etwas wie, zum Beispiel, setzen alle innerhalb des Buches einer Variablen. Wie diese, @ Bücher. Und es muss global mit diesem zu sein bei Sache, weil es sich auf sein der Ansicht aufgerufen. Es wird nicht innerhalb verwendet werden Die Steuerung selbst. Und es ist nur verlangsamt Informationen, die der Blick geht zu bedienen. Zum Beispiel prüft die Steuer wenn der Benutzer online ist. Und wie macht sie das? Es fragt eigentlich das Modell weil das Modell hat der Informationen über den Benutzer. Es hat eine Benutzer-Tabelle, die Bücher Tisch, anderen Tabellen. Also der Controller fragt, ob der Benutzer online ist. Wenn der Benutzer online ist, die Steuereinheit Griffe Dinge, wie wenn man ein Cookie, oder so etwas, um den Stempel zu setzen zu sagen, dass der Benutzer online ist. Keine Notwendigkeit, sich erneut anzumelden. Und es geht um eine Variable zu laden Benutzer, zum Beispiel, dass die Ansicht verwenden können. Und der Blick hier etwas gesagt, zum Beispiel, begrüßen user.name. Es wird also zu sagen, willkommen John, willkommen James - so etwas, oder? Also alle diese Variablen in die verwendete Ansicht gehen, um in die geladen werden Controller und sein werden, gezogen aus dem Modell. Dies ist das Beispiel einer Steuerung. So haben wir im Grunde jeder - nennen wir die Dinge, Handlungen. So Index ist eine Aktion. Es ist ein Ruby-Funktion. Es ist ein in Ruby-Methode gibt. Aber für die Steuerung Anrufe die Dinge, Handlungen. Und jede Aktion zu einer Route zusammen. Also hier diese Strecke, zum Beispiel, ist ein get Statement / Bücher. Also, wenn Sie harvard2017.com/books gehen, was passieren wird, ist dieser Code werde aufgerufen werden. Und es gibt eine Datei - lassen Sie mich diese ganz schnell öffnen. Es gibt eine Datei namens Raw-Datei. Es ist nicht zu öffnen. Also gibt es eine Datei namens Raw-Datei dass im Grunde übereinstimmt - oh, jetzt ist es zu öffnen. Hier Routen. Also im Grunde entspricht eine Belastung, Aktivierung / new beispielsweise was in der Steuerung. So gibt es diese Controller aufgerufen Aktivierungs-Controller, aber hier, Wir haben die Bücher, zum Beispiel. So passt - Bücher / neue, an den Controller Bücher, die Aktion neu. Also im Grunde sehr einfach Dinge. Und hier, wenn Sie hatte zu / Bücher zu bekommen, Schrägstrich die ID der Bücher, Schrägstrich neu, Sie gehen, um zu gehen, dass du Ruby-Methode dort unten. So, hier, was dieses Index wird dabei wird nur das Laden Buch Protokoll. Das ist etwas, das - Ich alle Bücher in einer Protokoll anmelden. Und das alles zu sortieren. Also das werde zurückkehren alle Bücher sortiert. Dies ist wiederum in der Datenbank. So ist dies ein Verfahren des Modells. Sie haben gesehen, wobei dieses Verfahren im Modell erstellt. Nun ist dies nur das Laden aller Bücher und setzen, dass eine Variable, die kann durch die Ansicht zu sehen. Weil Sie sich nicht, in der Mitte des Ihren HTML-Code, können Sie nicht anrufen können etwas direkt aus dem Modell, wegen zwei Gründen. Erste, aus Sicherheitsgründen, da es ist nicht wirklich interessant zu sein Informationen direkt im Laden jeder HTML, die in der Datenbank ist. Und zweitens, um Ihre halten Code wirklich organisiert. So genau, trennen die verschiedene Teile. So BookLog.sorted_all, diese in die Datenbank und das wird kannst eine Variable @ Bücher. Und jetzt diese Variable zugänglich ist in Ihrem HTML-Code. So können Sie diese einfach alle Bücher gibt es einfach wie wir, genau hier. Dies ist die Variable. Und Besuche respond_to tun | format |, das ist nur eine Art von Ruby-Syntax für wenn der Benutzer fragen mich, für HTML-Code, ich bin zu gehen antworten mit HTML-Code. Wenn der Benutzer aufgefordert, mich mit JSON-Code, das ist etwas, das Web-Apps nutzen, ist , untereinander zu kommunizieren, sie Regel verwenden JSON oder eine andere Art der Sache. So ist es nur reagiert, mit denen zwei verschiedenen Formaten. Aber für einen normalen Benutzer, diese müssten nicht hier sein. Sie würden nur reagieren mit HTML, und das ist gut. Also nicht wirklich Sorgen machen, dass viel darüber. Dies ist der einzige Codezeile in unserer Kontrolle, wie es aus HTML-Laden Datenbank, indem in etwas, das ist von der Sicht zu erreichen. Und dann neu, so dass hier Ich erstelle Bücher. Aber, um Bücher zu erstellen, brauche ich eine Studenten denn ich brauche, um die Schüler wissen, dessen Bücher dieser gehören, richtig. Also @ student = Studenten. Student, wieder, wir sind mit der Start eine große S ist der Musterschüler. OK, das ist so das Modell Student, Dieses Buch ist das Modell Protokoll. Student.find, so werde ich zu finden, ein Schüler mit den Parametern ID. params.id, das ist nur um mich den Wert dieser ID, die übergeben wurde - und die URL. Gerade gehen, um für diesen Schüler zu suchen. Und zuerst, wir werden überprüfen wenn der Student hat einige Songs und blah, blah, blah. Und das bereits behandelt der Fall, wenn der Student nicht vorhanden ist, zum Beispiel. Und dann, sonst, wir antworten auf die gleiche Sache mit HTML. Und dann können wir dem Anwender lassen schaffen ihre Songs. Also das ist neu. Neu ist in der Regel für, lassen Sie verwendet der Benutzer etwas schaffen. Und dann gibt es die Aktion zu erstellen das ist in der Regel verwendet - tatsächlich legte die Songs in der Datenbank oder so ähnlich. Aber sobald man mit Rails zu starten, die Dinge sein werden, viel, viel mehr klar. OK, abkühlen. Haben Sie Fragen so weit? Hat es Sinn macht, mit Controller, Modelle, Felder - ja? Auch in Ihrer Rails-Anwendung - so all das kann hier gefunden werden. So können Sie App, Controller, die haben sind alle meine Controller. So zum Beispiel, steuern Bücher. Das ist die, die wir gerade gesehen. Und dann Blick. Und jeder Controller verfügt über eine zugeordneten Ansicht, oder? So automatisch, wenn Sie diesen Aufruf Index hier, zum Beispiel, oder wenn Sie nennen diese neue Bücher, dann die Ansicht, Bücher, wird neue werde aufgerufen werden. So Rails tut alles automatisch für Sie. Also jeder Controller eine zugehörige hat anzeigen und alle Modelle - hier habe ich ein, zwei, drei, vier, fünf Modelle. Aber das ist ein Schülermodell, so dass diejenigen, sind die Variablen, die ganze Studenten haben - Lokalisierung, Geburtsdatum. Studierende ist ein bisschen mehr kompliziert, weil jeder Schüler mehr verschiedene Verfahren es zugeordnet ist. Aber das ist nur der Umgang mit Tabelle, die hatten alle die Studenten in der Datenbank. Und, OK, die Installation von Rails. Installation von Rails, um ehrlich zu sein, ist nicht die einfachste Sache. Aber wenn man einmal alles zu bekommen, es ist sehr, sehr einfach. So installieren Rails, die Sie gerade auf dem Sprung Website, rubyandrails.org / download und folgen Sie den Anweisungen. Laden Sie alles. Und Sie können, dass entweder in Appliance tun, in der CS50-Appliance auf Windows auf dem Mac, oder jede Betriebs System Ihrer Wahl. Ruby on Rails läuft auf alles. Quoten sind Sie bereits installiert Rubin wenn Sie einen Mac oder - in den Geräten Ich denke, Ruby ist - Ich bin nicht sicher. Und dann müssen Sie nur diese installiert. Und wenn Sie eine neue erstellen möchten Web-Anwendung, die Sie gerade tun, Rails, neu, Blog. Rails, neu - Ich weiß nicht - der Name der Website. Und es ist so einfach. Es geht um all jene zu schaffen Dateien, die ich zeigte, die Sie gerade. Aber das Modell, die Aussicht, und die Controller sind nicht zu sein noch besiedelt. Sie sind nur zu haben, um dorthin zu gehen und füllen diese drei Ordner. Also Chancen sind, können Sie ein Modell erstellen möchten, zum Beispiel implementieren ein modellieren zuerst. Also noch einmal, immer versucht kleiner zu beißen Bits von einem Problem zu einem Zeitpunkt. Und dann sagen wir, zu erstellen ein Modell für die Benutzer. Das ist das erste, was wenn Sie Nutzer. Dann möchte ich, um ein Modell zu erstellen genau wie wir hier zeigte. Rails, erzeugen, Modell, Benutzer-und dann E-Mails string - das haben wir hier. Und gerade dieses Modell zu erstellen, ja. Rails erzeugen Modell Benutzer per E-Mail: string Kennwort: String. Und dann haben Sie einen Controller erstellen dass sich mit dem Benutzer. Und Sie können neue Benutzer anlegen und tun, diese Art von Dingen. Und dann kann man auf die Schaffung bewegen der Rest Ihrer Website. Cool, noch Fragen? Ja. ZIELGRUPPE: [unverständlich] GABRIEL GUIMARAES: Ja, ja, Sie auf jeden Fall haben, in den Blick zu gehen. Das ist eine sehr gute Frage. Also die Aussicht ist, was tatsächlich enthält Ihre HTML. So ist es, was die Benutzer werden sehen. Auch hier ist dies ein Beispiel einer Ansicht. Es hat HTML-Code und Ruby Code zur gleichen Zeit. So ist die Ruby-Code ist da, um Dinge setzen aus der Datenbank, beispielsweise die auf die Steuerung geladen wurden. So daß Variable @ Bücher beispielsweise hat alle Bücher und die Tabelle Bücher in der Datenbank. Wir haben darauf geachtet, dass es hatte in der Steuerung. Und der Blick - jede der Seiten aus Ihrer Website ist gehen zu einem zugeordneten Ansicht haben. Also, wenn Sie auf die Startseite zu gehen, die ersten Seite, harvard2017.com. Das zeigt eine Seite. Und dann gehen Sie zum Profil senken. Das wird mit einem Controller gehen das ist ein Profil-Controller. Und das Profil-Controller wird Sie das Profil-Ansicht zu geben. Und die Profilansicht wird sich freuen etwas wie diese, aber es geht um haben Informationen über den Benutzer, und nicht über die Bücher. So ist es HTML-Code und CSS und die ist Dinge, die ein Benutzer sieht mit der Ruby-Code - dass tatsächlich druckt Dinge aus der Datenbank. Ist das mehr klar? Ich hoffe. ZIELGRUPPE: Der HTML-Code wird verwendet, um tatsächlich auf der Website, dass die Benutzer sieht, aber die Ruby-Code ist was macht die Website funktioniert? GABRIEL GUIMARAES: Der Ruby-Code wird in HTML umgewandelt. Also, was der Benutzer erhält nur HTML, OK? Es ist nur HTML. Diese book.title wird zu konvertieren der Wert der book.title in HTML, OK. So ist alles in dem Server, und so dies hängt davon ab, welche Bücher gibt es in der Server jetzt. Aber was würde der Server sofort Sinn ist nur HTML-Code, OK. Aber der Blick gibt nur das Layout der was die HTML würde aussehen und was die Variablen sein werden. Diese Art von Ausdruck, OK. Diese Dinge gibt es im Grunde Ausdrucke. Sie werden Variablen zu drucken, OK. Also, was ist nur HTML, die - Autor, Titel, Beschreibung. Das ist statische Inhalte. Das ist nicht zu ändern. Das ist einfach nur HTML-Code. Das sind die Ausdrucke für Variablen - Dinge, die abhängen. Cool, noch Fragen? Good? Ja. ZIELGRUPPE: Ich denke, Sie taten alles die Bearbeitung in einem anderen Text Bearbeitungsprogramm. Sollten wir auch, dass downloaden? GABRIEL GUIMARAES: Ja, Ich mag diese Texteditor Textmate genannt. Und es ist wirklich gut. Es ist gut Ruby geeignet. Es Farben Dinge sehr ordentlich. Also Textmate, T-E-X-T. Ich werde zu setzen, festhalten - Ich meine, Sie können gedit verwenden oder was Sie wollen. Aber dies ist spezifisch für Mac, und dies ist wirklich nett, weil es bringt alle Ihre Dateien dort unten. Und in Ruby on Rails, müssen Sie um Dateien zu wechseln, eine Menge. So ist es vielen, vielen Dateien nur gehen von einer Datei, um zu springen einer Datei oder das andere. Also Textmate ist ein sehr guter, aber es gibt viele da draußen. Noch Fragen? OK, ja? ZIELGRUPPE: Gibt es eine mobile Entwicklung durch Ruby on Rails? GABRIEL GUIMARAES: Ich habe der Dinge zu hören. Ich habe sie nicht genutzt. Sie könnten mehr dazu recherchieren. Ich bin nicht sicher, ob es irgendeine gute Sache gibt. OK, ja? ZIELGRUPPE: [unverständlich] GABRIEL GUIMARAES: Nicht Rails, wahrscheinlich Ruby-Arrays. Öffnen Sie ein Terminal-Fenster und die Art, "Ruby". Ja, wahrscheinlich, und dann nur noch Rails installieren. Aber wenn Sie sich für die Installation der neuen sind Rails 4.0, die ich sehr empfehlen, Sie sollten Ruby-2.0. Das ist der neue auch. Und die neuen Rails 4.0 hat etwas wirklich cool, dass es macht auf die Vermögenswerte. Es verwaltet Vermögenswerte. Assets wieder sind Bilder, CSS-Dateien und JavaScript-Dateien. Also eine wirklich nette Sache, die Ruby on Rails ist für Sie all die CSS Dateien, die Sie haben, und alles, was - es ist nur bündelt alles, was bis zu einem riesige Datei, ohne Leerzeichen oder nichts, die Zeit muss der Benutzer zu minimieren downloaden, dass Code von Ihrem Server. Also, wenn Sie in Ihrem Computer sehen, ist es werde wie 15 CSS-Dateien. Oder viele, viele verschiedene CSS-Dateien. Aber am Ende des Tages, was Rails nicht automatisch für Sie ist es bringt alles zusammen in eine riesige Datei so dass es minimiert die Anforderungszeit. Das ist wirklich cool. Ja? ZIELGRUPPE: [unverständlich] GABRIEL GUIMARAES: Genau. Also, Google Maps Integration. Das ist eine JavaScript-API von Google. Also ging ich einfach auf die Google-Website. Sie haben diese Google Maps API und ich heruntergeladen den Code und integriert es in meiner Sicht. Also, was ich brauchte, um es zu tun wird ich brauchte, um das zu bekommen Stellen aus der Datenbank. Das war in den Controller. Also ging ich an die Steuerung - wo ist der Controller. Der Controller sah wie folgt aus. Stand von den Stellen der Studenten, setzen all das in einen großen Variable, eine große Liste, dass hat alle Standorte. Und in der Ansicht, weil das JavaScript API ist etwas, in das sehen, oder? Da JavaScript läuft in Ihren HTML- Code, es wird zu richten an Rechner des Benutzers. Und in der Ansicht, dass alle lud ich Informationen in die Google-API. Und das tat es alles für mir, das ist wirklich cool. Aber wenn Sie die Dinge in die gewünschte Back-End, und es ist wie eine Bibliothek, für Beispiel wieder - die Integration mit Facebook. Das ist etwas, das viele, viele, viele Apps verwenden heutzutage. So haben Sie Ihre Integration mit Facebook denn es ist so viel einfacher, nur sich mit Facebook, als zu schaffen ein Konto und blah, blah, blah. Dann können Sie einfach ein Juwel und es ist, als einfach wie der Gang zur Edelstein-Datei. Gem-Datei ist eine Datei mit dem Namen Edelstein-Datei in das Quellverzeichnis Ihres Ruby on Rails-Projekt. Einfach hingehen und neue Juwel. Und Sie schauen auf Google. Es gibt viele, viele, viele Edelsteine. Es ist eine, die speziell macht dies für Facebook-Integration. Ich bin mir nicht sicher, was der Name es. Gerade Google es und du bist gehen, um es zu finden. OK, mehr Fragen? Awesome, ich danke Ihnen für Ihr Kommen.