>> GABRIEL GUIMARAES：這是CS50。
歡迎驚人的Web應用程序 用Ruby on Rails的。
因此，對於任何人誰是感興趣的網頁 開發和製作網站，網頁
應用程序，Ruby on Rails是這個 驚人的工具，Twitter的，GitHub上，
Groupon的，以及各種非常好的的， 和大，web應用程序使用的
最近幾年。
這是一個非常，非常酷 功能，一個很酷的工具，
因為它是新的。
所以，它擁有所有的新的強大 技術整合在一個
框架可以幫助你處理 各種令人驚奇的事情。
>> 但究竟什麼是框架？
這樣一個框架基本上是 一些創建 -
當你啟動一個網站，如果你開始 從頭開始，就像你打開
gedit的存在，並且要所有代碼 你的HTML和代碼所有的
PHP中，所有的CSS，一切 從頭開始 -
這只是將是一個大量的工作。
和一個框架，從字面上給你 一半的網站已經完成。
所以，你有一半的網站開始 有一切為您服務。
如數據庫連接，並且所有 各種各樣的事情，你不用擔心
樣，如果你​​從頭開始做， 你不必擔心那些
低級別的細節。
>> 但今天我們要導出的一個 本網站的大一
類2017可能是熟悉的。
所以這個網站是網站，我 沒有為我們班在今年夏天。
這是一個網站，那裡的學生 類2017可以登錄和
彼此相互作用。
然後這是一個地圖 -
每個人，那裡的人們。
和我們有一本書遊戲，遊戲歌曲 在這裡我們看到了人們的歌曲，
人的書籍。
他們喜歡讀什麼書，什麼 他們喜歡聽。
而它的最有趣的部分是 它字面上花了三個小時
編寫這一切。
因為如果我不得不從做的一切 從頭開始，像開了gedit的，它
可能會採取 我20，30小時。
但隨著Ruby on Rails的，因為 一切都已經設置好適合我，
我只花了三四個小時， 或者類似的東西。
>> 那麼，什麼是Ruby on Rails的。
Ruby on Rails的，又因為我們已經 說，是一個框架。
這是一個框架的圖片。
所以，你要開始建立一個 房子，你已經有一半的
內部完成。
這就是框架。
和Ruby on Rails是 完全一樣的。
你應該把它看作是，你開始 一個網站，你​​開始你的網頁
應用程序，我們已經有了 一半是在那裡進行。
但首先，什麼是紅寶石？
Ruby on Rails的使用模型視圖 控制器，這是範例，其中
是一個非常有趣 -
與時下所有的應用程序 使用類似的東西。
分離到的東西的這種想法 三個部分，模型，視圖和
控制器。
我們要談一點 稍後詳細說明。
>> 一，什麼是紅寶石？
因此，這是紅寶石。
這就是的符號 語言稱為紅寶石。
Ruby是解釋的新望一 語言，因此腳本。
它是不是編譯的語言 像C.它是編譯後運行。
所以這是一件好事，因為，就像PHP的， 例如也解釋，是
不編譯。
這是一件好事，因為它的便攜。
所以你只要把你的代碼 一台機器到另一台。
從一台Linux機器，到Windows 機，Mac或蘋果機，或
類似的東西。
而且你也不需要擔心 對於每個具體的細節
操作系統。
這是去上班無處不在。
>> 和Ruby是一種語言，它 -
你們可能還記得這一點。
人們用實現的哈希函數 C語言的哈希表
上週有各種各樣 段錯誤的。
然後事情擔心是否 該字符串我在那裡，我的字符串
在這裡，實際上是小寫或 大寫，或這些令人擔憂
低級別的細節。
那麼在Ruby中，如果你想實現 一個哈希表，這正是你如何
創建哈希表。
你說，字典，這就是名 我的變量，=“Hash.new”。
然後辭典[“富”]，而當我 加富到我的哈希表，我
只是說foo是那裡。
>> 然後，如果我想檢查是否 富在那裡，我只是說，如果
字典[“富”] == true返回真。
哇，這是你的哈希表。
這就是執行 在Ruby的哈希表。
所以每個人都希望他們能有 使用類似紅寶石的最後
本週的PSET，對不對？
我們有各種各樣的原因想要 使用像Ruby的語言。
Ruby有寶石。
寶石是一種名稱 在Ruby庫。
>> 所以各種有趣的功能 你可以有，例如，如果我
要整合我的應用程序。
哈佛2017的應用程序 被整合到Facebook。
所以，你可以登錄，通過 臉譜，到應用程序。
因此，如果你打算這樣做，你不這樣做 無需擔心發送一些
HTTP請求到Facebook，並等待 為響應，並迫使
反應，胡說，胡說，胡說。
你剛才下載的寶石， 做一切為您。
然後你就不需要 擔心這一切。
>> 然後大量的幫助 在線的，當然。
還有很多，很多，很多網站 要幫你倆用
Ruby和Rails的。
它是樂呵呵地代碼。
正是因為你可以停止擔心 那些不是那麼好玩的問題。
如果一樣東西是小寫或 大寫字母，然後這是為什麼
給你一個分段錯誤，並 你真的可以潛入非常
有趣的東西。
潛入真的很酷問題。
>> 所以紅寶石就像到C在一定意義上。
所以它不會是那 大的跳躍實際上。
這樣把，這是在我們的Ruby應用程序的打印。
我想你可以使用打印過， 但看跌期權是每個人都使用。
所以才提出的“Hello World”。
你能，或者你不能，有 括號包圍
“Hello World”的存在。
你可以選擇是否 或不使用。
然後X =“1”。
while循環看起來很漂亮 大致相同。
它只是有少的語法。
這是種清潔劑一點點。
然後當x> 25看跌期權“大！” 和別人把“小...”。
而且它是一種C在這個意義上。
>> 所以，如果你看一下，你可以 方法大概明白
一切是怎麼回事。
但它的功能更強大。
更強大，因為，更重要的是， 它可以做的事情都不是 -
某種hackage一點點。
在C語言中，你可以不這樣做 只是做一行。
例如，把“我是＃{X}”。
這僅僅是語法把值 的X這裡，並且不打印
字符x。
在C語言中你所要做的百分比d和 然後豎起變量x的後
這裡的逗號，或者類似的東西。
>> 而在Ruby中有一個速記 只是這樣做。
並提出這一點，如果x> 3，所以你可以 把如果所有在同一行。
然後列表。
在C列出，就像一個數組，你必須 跟踪你的數組有多大或
否則，你得到一個分割 故障。
您的陣列只有一種類型。
所以，它要么收費的數組 或整數數組。
在這種情況下，我創建了一個列表在這裡， 這是一個陣列，具有第一
元素是一個字符串，約翰，然後 4，2 - 這些都是整數。
然後我想補充，列表中， 左尖括號，左
角度支架，三。
這意味著剛剛追加 東西到我的清單。
>> 因此，它是由於一種更為有趣 如果你想使用它作為
整數的只是一個簡單的列表， 你可以，完全。
這是完全罰款。
只要把整數那裡。
但是，如果你想要做的東西是 更引人注目的，是有其他的
的東西，有 -
我不知道，各種列表中 那裡，或者是多個其它對象
有趣的，你完全可以做到這一點。
這是完全正常。
然後，如果你想遍歷 在列表中，您可以使用
更多C-ISH樣的方式。
這是for循環，你開始 一個變量，I =“1”，或I =“0”。
然後你走了，和迭代， 並獲得所有的元素。
>> 但你也可以用這個 更多的紅寶石般的做法。
這就像一個list.each。
這只是說，我返回 列表中的所有元素。
並與每一個元素做， 叫他們ELEM。
所以這只是一個名字，我很 給予每個元素。
現在這個是要重複所有 的元素，和元素，這將
是，我們訪問的方式 該單一元件。
所以，你完全可以堅持到 Ç的方法，但這個工程了。
它是完全一樣的東西，確定。
>> 而除此之外，它真的是， 很容易集成的Ruby和HTML
因為你們有興趣 在Web應用程序。
HTML是絕對的東西， 你會使用很多。
在這裡，如果你想要把紅寶石 在HTML中，只是從這裡開始，<％。
這意味著，這裡的Ruby開始。
樣的，然後％>，像 PHP在這個意義上。
紅寶石在這裡結束，那麼你就可以 只是把你如果在這裡。
然後我有一些變量 user.logged_in。
在Ruby中，我們通常會添加這些，無論是 問號或感嘆號
標誌，像銀行的性格， 只是那種
我們的職責區分。
但你只要把那個 為了你自己。
這不是改變 任何在功能性。
>> 因此，只是為了提醒我，這是一個 功能 - 並在Ruby的功能，
而不是C，正如我已經說過， 他們不需要括號。
讓登錄的事情，這就是 一個函數，這是一個方法。
但你沒有明確需要 把括號在那裡。
所以只是問如果用戶的登錄狀態， 和如果用戶的登錄，現在
HTML再次啟動。
所以歡迎，並在這裡 我打印的user.name。
就是這樣。
所以這是非常簡單的，如何 你與你的HTML集成的Ruby。
和資源，正如我所說，有 各種各樣的Ruby資源。
你們都可以事後看這個了 因為無論是視頻，並
幻燈片，要 在線可用。
>> 現在讓我們進入軌道。
Rails是愛。
導軌 -
所以Ruby是他的語言。
好了，就像PHP的，就像Python的。
這是一個高層次的語言，而不是像C。 C'S中間，在低層次的語言
這個意義上，紅寶石你不必 擔心內存重新分配，並
指針和這些類型的東西。
但Rails是這個程序， 是用Ruby編寫的。
並且它採用紅寶石，為了這個 框架，為你能
構建真棒Web應用程序。
>> 所以，你必須先在安裝Ruby 你的機器，但是大多數機器
已經有了。
然後在它上面安裝導軌。
我們將稍後談論那。
以及為什麼Rails的？
這樣的MVC，這是模型視圖控制器 我們談到了一點
位，讓一切更簡單，因為 它分為東西都是
在概念上不同分成不同的 部分應用程序。
更少的時間花費在低層次的問題， 再次，和非常，非常
流行的現在。
因此，對於所有那些誰感興趣的 在啟動現場，或在一些
喜歡創業，和人民 在技​​術市場誰是
自己創業，現在 真的，林心如對真正的球迷
Rails的，因為它是如此之快。
>> 所以，你可以得到的東西運行起來 在不到一天的時間，而這
真是一個非常引人注目的 參數使用Ruby。
和Rails 4.0 -
它是從烤箱很新鮮了。
所以Rails的4.0 -
我覺得第一個版本 在今年三月。
而且它真的很好，它擁有所有 各種新的，很酷的功能。
所以Ruby on Rails是一個框架，它是 不斷更新，讓所有
的新技術。
>> 我第一次嘗試使用的Ruby on Rails的，我有這個麻煩，因為我
創建我的第一個Web應用程序， 它看起來完全一樣的。
因此，它對於創建所有這些文件 你，我不知道是什麼 -
這是什麼？
它創造了所有這些文件，我只 要創建一個簡單的程序，
簡單的HTML網頁。
而我什至不能做任何事情。
所以我有點不知所措。
但是，這的事情之一，一旦你 了解它，一切都變得那麼
更加清晰。
所以，不要被第一不堪重負 視線在你第一次創建什麼。
>> 所以會發生什麼是Rails的創建 所有這些文件。
所以，一個是文檔，文檔。
DB，這是涉及到數據庫。
lib中，這是庫記錄。
公開，腳本和一些東西。
幾乎所有你要擔心 大約是app文件夾，在那裡。
這是一個包含文件夾 您的應用程序。
所有其他文件 -
其中有些是重要的，你 要了解稍後。
但他們只是在這裡 包含的框架。
房子所以第一基石 你們正在建設，好不好？
>> 但應用程序文件夾 -
這是真正重要的。
和應用程序文件夾中有資產。
資產是幾乎一切 這是未來。
例如圖片，一切的 靜態那將會被下載
您的網站。
所以，圖像，JavaScript，CSS -
這些類型的東西都是資產。
控制器 -
我們要多談談 什麼是控制器，模型，
並且在第二字段。
和傭工的功能，你 可以用在你的代碼
幫你做一些事情。
像功能登陸， 例如 - user.loggedin。
這是一個，大概你的功能 必須使用在您的所有部分
應用程序。
所以，你可以把喜歡的東西 在你的幫手。
>> 郵寄 -
如果你要發送的 一封電子郵件給你的用戶，你
要使用郵件程序。
與模型和視圖，我們將 談論那現在。
因此，模型視圖控制器，這是 紅寶石的基本基石
Rails和大多數框架 現在，說實話。
所以，再一次，我們分開我們所有的代碼 成三個不同部分。
該模型 -
該模型基本數據庫。
它可以處理數據庫中的事情。
>> 所以在數據庫中的每個表都有一個 模型內的相應文件。
所以這是怎樣的一個表 為您的用戶。
所以你存儲信息，如 用戶名，他們的電子郵件，他們
地址，他們的密碼， 之類的東西。
你將有一個文件 被叫用戶RB模型 -
RB為Ruby。
而且你將擁有一切 的方法和變量。
變量要對應 到的用戶名，電子郵件，和
一切。
>> 而你將不得不方法。
這將是有關的東西 -
你要處理這種信息 在數據庫中。
要創建Rails的一個模型， 你只需要使用Rails的生成。
並在Rails中創造的東西，你 實際需要的終端。
所以這是一個非常終端 基礎架構。
您只需登錄到終端， 和你的Rails，生成模型。
和模型的名稱是用戶。
我只是想有兩個變量， 兩列，在我的表。
所以這是電子郵件。
電子郵件是一種類型的字符串。
密碼，密碼為 還有一種類型的字符串。
這些是僅有的兩件事情。
這是一種簡單化的用戶表。
但你完全可以放一百個 事情的存在，如果你想。
>> 和Rails也使得它非常， 讓一切都非常簡單
各種數據庫的關係。
所以通常情況下，當你在你的表 數據庫，他們不是很
相互獨立的。
讓我們來想想。
你想購買和出售 產品線上。
好了，讓你擁有一個網站，你 想購買和銷售產品。
因此，每個用戶有很多的產品， 這個用戶是願意出售。
並且每個用戶也有許多交易 這是正在進行的，或
類似的東西。
與交易 與另一個用戶。
每個事務屬於 到兩個不同的用戶。
這是購買和用戶 這是銷售給用戶。
>> 因此，這些是所謂的 數據庫裡的關係。
在這裡，我們有完全相同的關鍵字， 有許多屬於。
這些是最重要的。
而你只是想說，對於 例如，這是一個示例
模型在哈佛20​​17網站。
同樣，學生在這裡 -
每個學生在網站上，學生 是一個模型，是一個數據庫表。
每個學生有很多書，因為你 可以說，什麼是你最喜歡的
書，對吧。
所以，每本書屬於 一個學生到這裡。
和屬性訪問 -
這只是說，那些 是變量。
這些都是變量訪問 從這個模型。
和變量的作者 書中，描述，類型，和
這本書的標題。
因此，只要信息 關於這本書。
>> 在這裡，我有一個方法， 簡單排序的一切。
所以，定義和在這裡結束，這只是 說，這才是我的方法。
Self.sorted_all。
這只是，給我的一切來分類， 這就是你如何實現
排序算法， 這是相當容易。
但基本上，這是怎麼 一個模型的樣子，確定。
有沒有人有關於問題 這個數據庫的事情嗎？
關係？
清楚了嗎？
是。
>> 觀眾：你能做到 排序算法？
>> GABRIEL GUIMARAES：該 排序算法，確定。
當你習慣了Ruby的語法， 這將是明確的。
但基本上，elems後是Book.all。
因此，本書是我的模型的名稱。
當你創建一個模型，它帶有 各種漂亮的方法給你。
所以dot.all是一種方法， 將返回所有圖書。
但發現，例如，將搜索 一本書，並返回那本書，或
類似的東西。
所以elems後就是一切。
而我只是說elems.sort。
排序是一個內置的Ruby功能。
>> 而且，做AB。
因此，這不又是 -
你要排序。
但你會得到 這種說法對我來說。
和參數使用 - 這是一個 在Ruby中更難的事情實際上，
該做的事情。
但是，一旦你了解它的一切 來非常，非常直觀。
所以，AB，這是說的地方 持有人，我要去使用 - 像
變量我要去使用，是 將被稱為A和B。
而這些都是書。
>> 所以，因為排序需要比較 元素，還記得嗎？
所以，當你理清頭緒，你 比較的兩個元素。
我會說，每一次 你要去比較 -
所以這就是我傳遞 將參數排序。
，爭論的焦點就是一切 從DO到這裡，好不好？
而這樣的說法，只是告訴 排序如何比較。
排序將在這裡工作，但它 將與他們的比較
默認的比較算法。
我希望它在一個非常具體的比較 方式，即，當書
被創造，當每個 本書已創建。
>> 所以我說，說的名頭 書是一個和名稱
第二本書為b，我想排序排序 基於b.created_at這個東西
奇怪的符號，a.created_at。
而且奇怪的符號是速記 為如果一個大於
其他的，則返回1。
如果一個等於 另外，返回零。
如果一個比小 另外，回報減去1。
所以這是奇怪的符號是什麼。
>> 但是，這並不重要。
我的意思是，我希望你們得到 現在的想法，數據庫 -
你可以有模式存在。
所以你不必擔心 連接和使用SQL語句，
之類的東西。
它也可以創建門 SQL注入和所有
各種各樣的安全問題。
在這種情況下，你不 擔心。
你只需要使用像book.all方法。
而且，在課程的背景下， 是要你的數據庫，它的
要使用一個SQL語句 讓所有的書籍。
但你不必 擔心。
這就是外賣，好不好？
>> 而當你有一個belongs_to的聲明 這樣，這意味著
一旦你有一本書的對象，你 可以看到的是它的學生。
所以，哪個學生有這本書嗎？
所以我們可以只使用book.student，並 ，讓你的學生是什麼。
，這是一個真正的功能有。
>> 好了，現在的觀點。
因此，該模型是交互 與數據庫，對不對？
該視圖是基本的HTML，和 CSS和一些JavaScript。
而這正是用戶 其實看到。
用戶不會 看到你的數據庫。
他會從看到的一些數據 數據庫嵌入到瀏覽器。
Ruby on Rails的，好不 簡單的製作領域。
首先，因為它已經創建了 對你來說，開箱，一個佈局。
>> 佈局是基本的東西 -
如果你所有的網頁都具有一個標誌在上面 而且，我不知道，某些菜單或
類似的情況，您的所有網頁 分享共同的，那你就不要
需要創建很多，很多，很多的HTML 文件，其中的所有文件有
相同的HTML代碼。
我的意思是這是愚蠢的，因為你只是 重複代碼不同的文件中。
這絕對不是一個好辦法。
>> 所以Ruby on Rails的創建 這種佈局適合你。
而這僅僅是說，我的所有網頁 將有此HTML，這頭
標題在這裡，這些都是 樣式表鏈接標記。
插在這裡我所有的CSS。
插在這裡我所有的JavaScript 和一些meta標籤。
這只是東西，他們 自動為你做。
然後，結束了頭，現在 此處開始體內。
現在這是我的實際內容。
所以，如果我想要把這樣的東西，一 菜單在這裡，我會把它的權利了
這個地方，或者類似的東西， 讓我所有的頁面共享它。
這樣的佈局被共享 所有的頁面。
>> 現在，收益率在這裡只是說，沒有 不管是什麼頁面這是在，只是
插入的所述內容 頁面在這裡了，好不好？
現在這是，例如， 一個頁面，那將是內容
插入此yield語句 自動軌道。
但是，這是共享一個佈局 所有頁面。
這是一個頁面的示例。
而這正是本頁面 列出所有的書。
所以這是一個基本的HTML表往上頂。
所以上市書籍，書名，作者， 說明，流派。
>> 這裡我們使用，再次，一些 Ruby語法，@ books.each- -
樣的@說，你變 是全球性的意義。
因為這個變量實際上是 在控制器中聲明的
你會看到現在。
但只是想當然地認為這 @書是一個變量，它是一個列表
所有的書籍。
所以books.each，做，並再次，這是 只是說你怎麼想的名字
每個迭代器，這樣我們不 擔心四，INT I
等等，等等，等等。
我們只取每個 元素，並使用它們。
>> 所以，這是這本書，然後就打印 在這裡。 book.title，book.author，
book.description，並 等等，等等，等等。
這裡有一個的link_to。
這樣的link_to只是一個鏈接標籤 用戶可以點擊和
去到另一個網站。
LINK_TO，表明本特別的書。
因此，如果用戶是在很感興趣 這本書，那麼他就可以單擊顯示。
或點擊編輯，如果他想 編輯的書。
或銷毀，如果他想刪除 本書從數據庫中。
好了，這是否有道理？
好。
>> 最後，控制器。
所以基本上控制器 之間的界面
模型和視圖。
因此，該模型是部分的 代碼有數據庫 -
數據庫中的每個表有 在一個相應的文件
模型，等等。
以及如何做的模型，並 該視圖進行交互？
這樣，通過控制器。
什麼是控制器的作用是它的 模型類似，例如
把所有的書裡面的 一個變量。
贊一個，@書籍。
>> 並且它必須是全局與此 在的事，因為這將是
通過視圖訪問。
它不會被用於內 控制器本身。
它只是減緩信息 該視圖將使用。
例如，控制器檢查 如果用戶處於聯機狀態。
它是如何做到這一點？
實際上，它要求模型 因為該模型具有
有關用戶的信息。
它有一個用戶表，本本 表，其他表。
因此控制器詢問 用戶在線。
如果用戶是在線的，則控制器 處理事情，比如把一個cookie，
或類似的東西，把郵票 可以說，用戶在線。
無需再次登錄。
>> 並且它會加載一個名為變量 用戶，例如，該
視圖可以使用。
並認為可以把這裡的東西， 例如，歡迎user.name。
因此，它會說：歡迎 約翰，歡迎詹姆斯 -
這樣的事情，對不對？
因此，所有這些變量中的使用 視圖將會在加載
控制器和將要 從模型上拉。
>> 這是一個控制器的例子。
因此，我們有，基本上，每 -
我們所說的那些東西的動作。
因此，指數是一個動作。
這是一個Ruby的功能。
它在那裡一個Ruby方法。
但對於控制器調用 這些東西的動作。
和每個動作都涉及到的路由。
所以在這裡這條路線，例如， 是一個GET語句/書籍。
所以，如果你去harvard2017.com/books， 什麼事情發生是這樣的代碼是
將要被調用。
>> 並有一個文件 -
讓我打開這個真正的快。
有一種稱為原始文件的文件。
它不開放。
因此，有一個叫做原始文件的文件 基本上匹配 -
哦，現在它打開。
在這裡，路線。
所以基本上匹配的應變， 激活/新為例，
東西在控制器中。
因此，有此控制器稱為 激活控制器，但在這裡，
我們有書籍，例如。
所以比賽 -
書籍/新控制器 書籍，新的動作。
所以基本上，非常簡單 的東西。
>> 在這裡，如果你必須得到/書籍， 斜線的書籍ID，斜線新，
你打算去那 Ruby方法出現了下滑。
所以在這裡，這是什麼指數做 只是加載本書記錄。
在這個時候， -
我記錄所有的日誌的書籍。
和排序了這一切。
因此，這將返回 所有分類書籍。
這是，再次，在數據庫中。
因此，這是該模型的一種方法。
您看到這個方法是 在模型中創建的。
現在，這只是加載所有的書 並把在一個變量，
可以通過該視圖可以看出。
>> 因為，你不能在中間 您的HTML代碼，您不能調用
一些直接從模型 因為有兩個原因。
首先，出於安全原因，因為 它不是真正有趣的是
裡面直接加載信息 每個HTML這是在數據庫中。
第二，保持你的 代碼真的舉辦。
因此，分離完全 不同的部分。
所以BookLog.sorted_all，這在 數據庫，這是將要投入
一個變量@書。
現在這個變量的訪問 在你的HTML代碼。
所以，你可以把所有的書 有像我們一樣，就在這裡。
這是可變的。
>> 來訪的respond_to做|格式|， 這只是一種Ruby語法的
如果用戶問我 HTML代碼，我要去
響應的HTML代碼。
如果用戶問我使用JSON代碼， 這恐怕是網絡應用程序使用
彼此之間進行通信，它們 通常使用JSON或其他
之類的話。
因此，它只是回應那些使用 兩種不同的格式。
但對於普通用戶，這 不需要到這裡來。
你會剛剛與回應 HTML，這很好。
所以，真的不擔心 很多關於這個。
這是代碼的唯一行我們 控制，因為它是從HTML載入
數據庫，投入的東西的 通過視圖訪問。
>> 然後新的，所以在這裡 我創建的書籍。
而是創造的書籍，我需要一個學生 因為我需要知道學生
其著作這屬於，右。
所以@學生=學生。
學生，再一次，我們已經開始與 大S是模範學生。
好了，這就是模範生， 這是模型本書記錄。
Student.find，所以我打算找一個 學生使用的參數標識。
params.id，這只是讓我的價值 - 這個ID來傳遞
與該URL。
>> 只是要尋找的學生。
和第一，我們要檢查 如果學生有一些歌曲
和胡說，胡說，胡說。
而這已處理 情況下，當學生
不存在，例如。
然後，否則，我們只是回應 使用HTML同樣的事情。
然後我們就可以讓用戶 創建自己的歌曲。
因此，這是新的。
新通常用於讓 用戶創造的東西。
再有就是創​​建操作 這通常用於 -
居然把歌曲中的數據庫 或者類似的東西。
但是，一旦你開始使用Rails， 這些東西都將是
很多很多更加清晰。
OK，冷卻。
有任何疑問，這麼遠嗎？
確實很有道理帶控制器， 模型，領域 -
是嗎？
>> 再次在你的Rails應用程序 -
因此，所有的，可以在這裡找到。
所以，你有應用程序，控制器，這些 是我所有的控制器。
因此，例如，書籍控制。
這就是我們剛才看到的那個。
然後景色。
並且每個控制器都有一個 關聯視圖，對不對？
所以，當你調用這個自動 指數在這裡，例如，或當您
把這種新的書籍，那麼該視圖， 書籍，新的將被調用。
>> 所以Rails的做一切 自動為您。
因此，每個控制器都有一個關聯的 查看所有的車型 -
這裡我有一個，兩個，三個， 四，五款。
但是，這是一個學生的模式，所以這些 是變量，所有的
學生 - 本地化， 出生日期。
學生是多一點點 複雜，因為每個學生都​​有
以上不同的方法 與其關聯。
但是，這只是處理 表中把所有的
學生在數據庫中。
>> 而且，OK，安裝Rails的。
安裝Rails的，說實話， 不是簡單的事情。
但是，一旦你過去的一切， 這是非常，非常容易。
所以在安裝Rails的，你只要到 網站rubyandrails.org /下載
並按照他們的指示在那裡。
下載一切。
而你能做到這一點無論是在家電， 在CS50電器，上
Windows上，Mac或任何操作 您所選擇的系統。
Ruby on Rails的運行一切。
>> 賠率是你已經安裝了Ruby 如果你有一台Mac或 -
在家電，我認為Ruby是 -
我不太肯定。
然後你只需要安裝該軟件。
如果你想創建一個新的 Web應用程序，你只需
做Rails的，新的，博客。
Rails的，新的 -
我不知道 -
您的網站的名稱。
它就是這麼簡單。
>> 這將創建所有這些 文件，我剛才給你看。
但該模型，視圖和 控制器都不會是
人口呢。
你只是將不得不去那裡 並填充這三個文件夾。
所以賠率是，你要創建一個模型， 例如，實現一個
第一個模型。
如此反复，總是要咬小 有問題的位的時間。
>> 然後讓我們說，創建 一款型號為你的用戶。
這是第一件事 如果你的用戶。
然後，我想創建一個模型 就像我們發現在這裡。
導軌，生成，模型，用戶，然後 電子郵件字符串 - 我們在這裡。
而剛剛建立的模型，是的。
Rails的模型生成用戶的電子郵件：字符串 密碼：字符串。
>> 然後創建一個控制器 該處理的用戶。
您可以創建新的用戶和 做這些類型的東西。
然後你就可以繼續創建 您的網站的其餘部分。
酷，問題嗎？
是。
>> 觀眾：[聽不清]
>> GABRIEL GUIMARAES：是的，是的，你 肯定是要進入該視圖。
這是一個非常好的問題。
這樣的觀點實際上是什麼 包含你的HTML。
因此，它是什麼樣的用戶 將要看到的。
再次，在這裡，這是一個 例如一個觀點。
它具有HTML代碼和紅寶石 在同一時間碼。
所以Ruby代碼有沒有放東西 從數據庫，例如
這是在控制器加載。
使變量@書籍，例如 擁有所有的書籍和表
書在數據庫中。
我們確信，它有 在控制器中。
>> 和視圖 -
每過你的網站的網頁是 將會有一個相關聯的視圖。
所以，如果你去到首頁， 第一個頁面，harvard2017.com。
這顯示一個頁面。
然後你去削減輪廓。
那將進入一個控制器 這是一個配置文件控制。
以及更新控制器會 給你縱斷面圖。
和縱斷面圖是怎樣看 有點像這樣，但是它要
有關於用戶的信息， 而不是書本。
>> 所以它的HTML代碼，CSS和那些 即用戶看到的東西
用Ruby代碼 -
實際打印的東西 從數據庫中。
是更清楚了嗎？
我希望。
>> 觀眾：的HTML代碼是用來 其實做網站的
用戶看到，但Ruby代碼是 是什麼讓網站的工作？
>> GABRIEL GUIMARAES：Ruby代碼 被轉換為HTML。
因此，用戶得到什麼 僅僅是HTML，好不好？
這是唯一的HTML。
這book.title是要轉換為 book.title的HTML中的值，確定。
因此，這是在所有的服務器上，所以 這個要看什麼書都沒有
在服務器現在。
但是，服務器馬上會 意義僅僅是HTML代碼，確定。
>> 但認為只是給佈局 什麼是HTML將會是什麼樣
和什麼樣的變數 將要。
這種打印出來，確定。
那些東西有 基本打印輸出。
他們將打印變量，確定。
那麼，什麼是唯一的HTML，那些 -
作者，標題，描述。
這是靜態內容。
這是不會改變的。
這只是普通的HTML代碼。
這些都是打印輸出 變量 -
依賴的東西。
酷，更多的問題？
好？
是。
>> 觀眾：我覺得你在做所有 在不同的文本編輯
編輯程序。
難道我們還下載了？
>> GABRIEL GUIMARAES：是的，我喜歡這個 調用文本編輯TextMate的。
而且它真的很不錯。
它非常適合紅寶石。
它的色彩的東西很整齊。
這樣的TextMate，T-E-X-T。我要去 放了，堅持住 -
>> 我的意思是你可以用gedit 或者你想要的任何東西。
但是，這是特定的Mac，而這 真的是整齊的，因為它把所有的
您的文件在那裡。
而在Ruby on Rails的，你需要 切換文件很多。
所以它的很多很多的文件只是 從一個文件中去，跳轉到
一個文件或另一個。
這樣的TextMate是一個非常好的，但 有很多在那裡。
更多問題？
好了，是嗎？
>> 觀眾：是否有一個移動開發 通過Ruby on Rails的？
>> GABRIEL GUIMARAES：我已經 聽說過的東西。
我沒有使用過他們。
你可以研究更上了。
我不知道是否有任何 好東西在那裡。
好了，是嗎？
>> 觀眾：[聽不清]
>> GABRIEL GUIMARAES：不Rails的， 大概紅寶石陣列。
打開一個終端窗口 和類型，“紅寶石”。
是啊，大概，然後你 只需要安裝Rails。
但是，如果你要安裝新的 Rails的4.0，我強烈建議，
你應該下載的Ruby 2.0。
這就是新的了。
而新的Rails 4.0的東西 很酷的說
它的資產。
它可以處理的資產。
資產再有圖像，CSS文件， 和JavaScript文件。
因此，一個非常靈巧的東西的Ruby on Rails的為你做的是所有這些的CSS
你有文件和一切 -
它只是一切都捆綁起來成一個 巨大的文件，不帶空格或任何東西，
以減少用戶需要的時間 從你的服務器上下載代碼。
>> 因此，當您在計算機中看到的，它 將不得不像15 CSS文件。
或者很多很多不同的CSS文件。
但在一天結束時，什麼的Rails 它會自動為你是它把
一切都匯集成一個大文件 這樣它最大限度地減少了請求時間。
這真的很酷。
是嗎？
>> 觀眾：[聽不清]
>> GABRIEL GUIMARAES：沒錯。
因此，谷歌地圖集成。
這是從一個谷歌的JavaScript API。
所以，我只是去了谷歌網站。
他們有這樣的谷歌地圖API和我 下載的代碼，並將其集成
進入我的看法。
因此，我需要做的有 是我需要得到的
從數據庫的位置。
這是在控制器中完成的。
於是我去到控制器 -
哪來的控制器。
該控制器是這樣的。
得到了所有的位置的 學生，把所有這一切變成了大
變量，一個大名單，這 擁有所有的位置。
>> 並在視圖中，因為JavaScript的 API是什麼東西在
看到了吧？
因為JavaScript的HTML中運行 代碼，它要被發送到
用戶的機器。
並在視圖中，我裝了這一切 信息到谷歌的API。
它做了所有的對於 我，這是真的很酷。
但是，如果你想使用的東西，在 後端，它就像一個圖書館，為
例如，再次 -
與Facebook的整合。
這件事情，很多很多， 許多應用程序使用的是現在。
>> 因此，有你的Facebook整合 因為它是很容易做的只是
與Facebook的登錄，而不是創建 一個帳戶，胡說，胡說，胡說。
然後你只需用寶石和它一樣 簡單的將你的寶石文件。
寶石文件是一個名為寶石中文件的文件 你的Ruby上的源目錄
Rails項目。
只是去那裡，並添加新的寶石。
而且你看它在谷歌。
還有很多，很多，很多的寶石。
還有一個專門做 這對Facebook的整合。
我不知道它是什麼名字。
它只是谷歌和你 要找到它。
好了，更多的問題？
真棒，謝謝你的光臨。