本課程主要講解Ruby on Rails基礎(chǔ)知識,包括對 Rails 開發(fā)環(huán)境、Ruby版本及 Ruby 管理工具 RVM 的簡單介紹, Rails 項目中的文件含義的講解,并為即將開始的 Rails 項目設(shè)計用戶界面(UI)。
Ruby 是一門現(xiàn)代,面向?qū)ο蟮哪_本語言。 它簡潔、容易理解,可以讓你快速地用代碼自然、清晰表達(dá)想法。讓你的程序能很簡單被編寫并且在幾個月后還能很容易讀懂。Ruby on Rails 是一個 Web 應(yīng)用程序框架,是一個相對較新的 Web 應(yīng)用程序框架,構(gòu)建在 Ruby 語言之上。它被宣傳為現(xiàn)有企業(yè)框架的一個替代,而它的目標(biāo),簡而言之,就是讓生活,至少是 Web 開發(fā)方面的生活,變得更輕松。通過本課程的學(xué)習(xí),學(xué)員能夠掌握如何搭建開發(fā)環(huán)境,了解 Rails 項目中文件的含義,并通過用戶界面(UI)的設(shè)計,了解項目如何交付,以及要實現(xiàn)的目標(biāo)。
本課時介紹了 Ruby 及 Rails 的開發(fā)環(huán)境,RVM 和 Ruby 的安裝,以及操作系統(tǒng)平臺的選擇。
Ruby, 是由 松本行弘 先生在1995年正式發(fā)布的一種“面向?qū)ο缶幊獭钡哪_本語言。推薦兩本松本行弘的書籍。
| 封面 | 書評 |
|---|---|
| http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/matz.jpg"> | 《松本行弘的程序世界》是探索程序設(shè)計思想和方法的經(jīng)典之作。作者從全局的角度,利用大量的程序示例及圖表,深刻闡述了Ruby編程語言的設(shè)計理念,并以獨特的視角考察了與編程相關(guān)的各種技術(shù)。 |
| http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/feature.jpg"> | 《代碼的未來》是Ruby之父松本行弘的又一力作。作者對云計算、大數(shù)據(jù)時代下的各種編程語言以及相關(guān)技術(shù)進行了剖析,并對編程語言的未來發(fā)展趨勢做出預(yù)測,內(nèi)容涉及Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB、摩爾定律、編程語言、多核、NoSQL等當(dāng)今備受關(guān)注的話題。 |
再推薦大家?guī)妆?Ruby 開發(fā)給書,方便大家在學(xué)習(xí) Rails 之余,更多的了解 Ruby。
| 封面 | 書名 |
|---|---|
| http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/ruby4.jpg" alt="" /> | Ruby 編程 |
| http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/meta.jpg" alt="" /> | Ruby 元編程 |
| http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/7weeks.jpg" alt="" /> | 七周七語言 |
更多 Ruby 的介紹,大家可以查看 Ruby簡介 和 20分鐘體驗 Ruby。
我們使用的 Rails,就是基于 Ruby 開發(fā)的。Rails 的完整稱呼是 Ruby on Rails,簡稱 Rails,是由 丹麥人 David Heinemeier Hansson(DHH)在2003年發(fā)布的開源 Web 框架。
http://wiki.jikexueyuan.com/project/rails-practice/images/chapter_1/dhh.jpg" alt="image" />
圖為穿著賽車服的 DHH,他和其他兩隊友獲得了2014年勒芒24小時耐力賽GTE-Am組的冠軍。
Rails 是一個基于 MVC 模式的高效的開發(fā)框架。在我剛剛接觸 Rails 的2007年,很多人說不需要了解 Ruby,就可以使用 Rails 開發(fā)網(wǎng)站了,足見 Rails 的方便和快捷。而快速開發(fā),也成為了 Rails 迅速獲得眾多開發(fā)人員喜愛的原因,眾多大型網(wǎng)站,曾經(jīng)或現(xiàn)在,正在使用著 Rails。Rails的受歡迎,也使得 Ruby 躋身最流行的開發(fā)語言排名前列。
注:勒芒大賽對車手是個極大的考驗,F(xiàn)ISA規(guī)定勒芒每部賽車由3名賽手分別駕駛(1980年中期以前為2名賽手),即采用換人不換車的方法,所有的加油、換胎和維修時間都包括在24小時以內(nèi)。最后,行駛里程最多的賽車獲勝,一般一晝夜下來,成績最好的賽車行駛的里程將近5000公里。每人連續(xù)駕駛時間不超過4小時,主車手總駕駛時間不超過14小時。勒芒環(huán)行跑道全長13公里,其中絕大部分是封閉式的公用高速公路,賽車在其2/3的路段上時速達(dá)370km/h左右,C組車一般只用3分鐘左右的時間就能跑完一圈的路程。在跑道上有一段約6km的直路,賽車在這段路上飛速駛過,速度達(dá)到390km/h。
在安裝 Rails 前,我們先來安裝 Ruby 環(huán)境。這里,我們使用 rvm 這個工具。
注:以下安裝及后續(xù)開發(fā)是在 Mac 系統(tǒng)上進行的,Windows 系統(tǒng)可以選擇 rubyinstaller。但是在 windows 開發(fā) Rails 程序會遇到眾多問題,建議大家安裝虛擬機或者 Linux 雙系統(tǒng)進行開發(fā)。
RVM 是 Ruby 管理工具,可以方便的安裝、管理、切換多個 Ruby,管理 Gemset。
安裝 RVM 的命令是:
curl -sSL https://get.rvm.io | bash -s stable
如果你已經(jīng)安裝了 RVM,可以用這個命令升級到最新的 stable 版本:
rvm get stable
在有的操作系統(tǒng)中,會給出這個提示:
* To start using RVM you need to run `source /home/webmaster/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
這是你可以運行提示中的命令,source /home/webmaster/.rvm/scripts/rvm,或者退出當(dāng)前登錄 shell,再次登入。
我們在當(dāng)前開發(fā)用戶中安裝 RVM,不必切換到 root 用戶下。在生產(chǎn)服務(wù)器(Poduction)中,可以使用專門的項目管理用戶,并具備 sudo 權(quán)限。我們在后面部署章節(jié)里會詳細(xì)介紹。
安裝完 RVM 后,我們可以使用 rvm -v 查看版本。我們使用 rvm list known 這個命令,可以查看可安裝的 Ruby 版本:
% rvm list known
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p598]
[ruby-]2.1.4
[ruby-]2.1[.5]
[ruby-]2.2.0
[ruby-]2.2-head
ruby-head
我們的課程里,將使用2.2.0這個版本:
rvm install 2.2.0
我們可以查看當(dāng)前安裝的 Ruby 版本:
% rvm list
=* ruby-2.2.0 [ x86_64 ]
如果你已經(jīng)安裝了其他版本的 Ruby,可以通過 --default 參數(shù),設(shè)置 RVM 默認(rèn)使用的 Ruby 版本:
rvm use 2.2.0 --default
看一下我們的 Ruby 版本:
% ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13]
安裝 Rails 前,我們先創(chuàng)建一個 Gemset。Gemset 是一個獨立的 Gem 集合,可以為每個項目設(shè)置自己的 Gemset,而不會相互干擾。:
rvm gemset create rails4.2
rvm use 2.2.0@rails4.2 --default
gem install rails -v 4.2.0 --no-document
注:--no-document 會跳過安裝 ri 和 rdoc 文檔,可以減少安裝時間。
注:在一些系統(tǒng)環(huán)境中,還需要先安裝 bundler,它的命令是 gem install bundler。Bundler 是Ruby 跟蹤和安裝 Gem 的工具,它的官網(wǎng)在這里 http://bundler.io/。
在后面代碼開發(fā)中,我們將繼續(xù)使用 Ruby 2.2 和 Rails 4.2 版本。
這里有一份 RVM實用指南 供大家參考。
Ruby 和 Rails 的開發(fā)環(huán)境,可以在多個操作系統(tǒng)上安裝,你可以選擇 Mac 作為開發(fā)平臺,也可以使用 ubuntu 等 linux 系統(tǒng),作為開發(fā)和生產(chǎn)環(huán)境部署平臺。windows 系統(tǒng)可以作為開發(fā)平臺使用。
在正式進入我們的教學(xué)前,請先熟悉一下 git 的簡單操作(中文版),Git是一個開源的分布式版本控制系統(tǒng),用以有效、高速的處理從很小到非常大的項目版本管理。
我們的代碼是放到 github 上的,你可以 clone 下來我們的代碼,在本地調(diào)試。另外,你也需要準(zhǔn)備好自己的編輯器。
github是一個打開托管平臺,也是一個開發(fā)者的互動社區(qū),你可以在上面閱讀大量的開源代碼,比如 Ruby,Rails,還有我們每一個章節(jié)的 代碼。
墻裂建議你注冊一個 github 的賬號,把你學(xué)習(xí)的代碼和經(jīng)驗總結(jié)放到上面去。代碼可以創(chuàng)建代碼倉庫(repo),學(xué)習(xí)經(jīng)驗可以創(chuàng)建 github 的 wiki 頁面,或者使用 markdown 來編寫。對于一些實用的代碼片段,可以使用 gist 保存。