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的整合。 我不知道它是什麼名字。 它只是谷歌和你 要找到它。 好了,更多的問題? 真棒,謝謝你的光臨。