一、知識(shí)概要
1.Ruby簡介
(1)Ruby是一種開源的面向?qū)ο蟪绦蛟O(shè)計(jì)的服務(wù)器端腳本語言,與很python接近,但更為簡潔優(yōu)雅;
(2)Ruby 是一種通用的、解釋的、真正的面向?qū)ο缶幊陶Z言,也是一種類似于 Python 和 Perl 的服務(wù)器端腳本語言;
(3)Ruby 可以用來編寫通用網(wǎng)關(guān)接口(CGI)腳本,也可以被嵌入到超文本標(biāo)記語言(HTML)。
(4)Ruby 語法簡單,有豐富的內(nèi)置函數(shù),可以直接在 Ruby 腳本中使用這使得新的開發(fā)人員能夠快速輕松地學(xué)習(xí) Ruby。,
(5)Ruby 可擴(kuò)展性強(qiáng),用 Ruby 編寫的大程序易于維護(hù);
(6) Ruby可用于開發(fā)的 Internet 和 Intranet 應(yīng)用程序。
(7)ruby三原則及優(yōu)點(diǎn):
? ? ? ? ? ? 一切都是對象;
? ? ? ? ? ? 每一個(gè)操作都是調(diào)用方法;
? ? ? ? ? ?所有的編程都是元模型 ?(類和方法可以在任何時(shí)候添加或改變;即使程序已經(jīng)運(yùn)行;動(dòng)態(tài)類型,對象有類型,而變量沒有)。
2.Rails
不同于已有復(fù)雜的Web開發(fā)框架,Rails結(jié)合了PHP體系的優(yōu)點(diǎn)(快速開發(fā))和Java體系的優(yōu)點(diǎn)(程序規(guī)整),是一個(gè)更符合實(shí)際需要而且更高效的Web開發(fā)框架。
3.Ruby on Rails
Ruby?on Rails 是一個(gè)用于開發(fā)數(shù)據(jù)庫驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用程序的完整框架。Rails基于MVC(模型- 視圖- 控制器)設(shè)計(jì)模式。從視圖中的Ajax應(yīng)用,到控制器中的訪問請求和反饋,到封裝數(shù)據(jù)庫的模型,Rails 為你提供一個(gè)純Ruby的開發(fā)環(huán)境。發(fā)布網(wǎng)站時(shí),你只需要一個(gè)數(shù)據(jù)庫和一個(gè)網(wǎng)絡(luò)服務(wù)器即可。
Ruby On Rails是一個(gè)用于編寫網(wǎng)絡(luò)應(yīng)用程序的軟件包.它基于一種計(jì)算機(jī)軟件語言Ruby,給程序開發(fā)人員提供了強(qiáng)大的框架支持.你可以用比以前少的多的代碼和 短的多的時(shí)間編寫出一流的網(wǎng)絡(luò)軟件。
Ruby On Rails的指導(dǎo)原則是”不要重復(fù)你自己”(Don’t Repeat Yourself, 或DRY).意思是說你寫的代碼不會(huì)有重復(fù)的地方.比如以往數(shù)據(jù)庫的接口往往是類似的程序代碼但是在很多地方都要重復(fù)用到.這無論是給編寫還是維護(hù)都造成 了很大的代價(jià).相反,Ruby On Rails給你提供了絕大多數(shù)的支持,讓你只需要短短的幾行代碼就可以實(shí)現(xiàn)強(qiáng)大的功能.而且,Rails提供了代碼生成工具,讓你甚至不需要編寫一行代碼 就實(shí)現(xiàn)強(qiáng)大的管理程序.
Ruby On Rails通過reflection和runtime extension減少了對configuration文件的依靠,這和Java,C#語言的方向有很大不同,讓你減少了很多配置和部署的麻煩,但是性能上卻完全可以應(yīng)付一般網(wǎng)站的需求.
Rails 支持各類網(wǎng)絡(luò)服務(wù)器和數(shù)據(jù)庫。在服務(wù)器方面,我們推薦Apache、 lighttpd 或 nginx 代理至 Mongrel (或者使用FastCGI)。數(shù)據(jù)庫方面,你可以采用MySQL、PostgreSQL、SQLite、Oracle、SQL Server、DB2、或其他任何我們支持的系統(tǒng)。Rails可以在各類操作系統(tǒng)上運(yùn)行,不過我們建議采用基于unix的系統(tǒng)進(jìn)行開發(fā)。
二、安裝Ruby
1、官網(wǎng)rubyInstaller下載ruby應(yīng)用程序
2.雙擊已下載的ruby應(yīng)用程序,安裝ruby
3.打開CMD,輸入ruby -v 驗(yàn)證是否安裝成功
三、下載并安裝Rails
先在命令行輸入gem install rails安裝rails,安裝完成后輸入ruby -v 驗(yàn)證是否安裝成功。
出現(xiàn)如下錯(cuò)誤提示
所以安裝rails前需安裝DevKit。
四、下載并安裝DevKit
DevKit 是windows平臺(tái)下編譯和使用本地C/C++擴(kuò)展包的工具,用來模擬Linux平臺(tái)下的make, gcc, sh來進(jìn)行編譯。這個(gè)方法目前僅支持通過RubyInstaller安裝的Ruby。
1、下載Devkit
2.安裝Devkit
1) 將下載 的DevKit 解壓到 某個(gè)新建文件夾下(如:D:\Ruby\DevKit):
2) 打開 CMD 窗口,進(jìn)入 D:\Ruby\DevKit目錄,輸入ruby dk.rb init 。#生成config.yml,這里會(huì)檢查將要添加DevKit支持的Ruby列表,只支持通過RubyInstaller安裝的Ruby。
3) 輸入 ruby dk.rb install? #開始安裝
4) 輸入 ruby dk.rb review? #檢查要添加DevKit支持的Ruby列表是否有誤,可以略過
5) 輸入 gem install rdiscount --platform=ruby 。#這一步只是驗(yàn)證DevKit是否安裝成功,如果能安裝rdiscount成功說明安裝DevKit成功,也可以不做。
3.再按“步驟二”安裝rails
五、安裝RubyMine用于編寫和查看rails創(chuàng)建的項(xiàng)目代碼
RubyMine 是一個(gè)全新的為Ruby 和 Rails開發(fā)者準(zhǔn)備的 IDE (非開源且收費(fèi)),RubyMine由 JetBrains 開發(fā)(JetBrains最著名的產(chǎn)品之一就是Java IDE:IntellJ IDEA了!)。RubyMine是建立在IntellJ IDEA平臺(tái)之上,提供所有必須的IDE功能,比如編輯,調(diào)試工具,源代碼控制集成,代碼自動(dòng)提示完成,以及其他功能。專門為ruby打造的功能有基于 GUI 支持的 RSpec 和 Test::Unit。
1.官網(wǎng)Download RubyMine下載RubyMine
2.雙擊下載的RubyMime.exe安裝RubyMime
3.打開安裝好的RubyMine
六、創(chuàng)建空的rails網(wǎng)頁框架
1、創(chuàng)建一個(gè)新文件夾(如:D:\Ruby\Project)用于存放rails項(xiàng)目文件,打開CMD提示窗口,進(jìn)入D盤的Project文件夾,輸入指令:rails new ruby,會(huì)在Project文件夾下將創(chuàng)建名稱為ruby的rails項(xiàng)目結(jié)構(gòu)。
2.在命令行下轉(zhuǎn)到項(xiàng)目目錄,運(yùn)行:rails server 啟動(dòng)服務(wù)
打開瀏覽器輸入http://127.0.0.1:3000就可以看到初始化頁面了:
3.讓Rails說 "Hello"
Rails是一個(gè)MVC框架,Rails接收來自瀏覽器的請求,對請求進(jìn)行解讀以找到合適的控制器,再調(diào)用控制器中合適的方法。然后,控制調(diào)用合適的視圖,把結(jié)果顯示給用戶。Rails提供了快速創(chuàng)建視圖和控制的方法,打開CMD命令窗口。進(jìn)入到剛才的www項(xiàng)目目錄,輸入命令:rails generate controller say hello 如圖:
打開網(wǎng)頁http://localhost:3000/say/hello,若出現(xiàn)異常
則用RubyMine打開rails項(xiàng)目,按網(wǎng)頁錯(cuò)誤提示路徑打開異常代碼,將錯(cuò)誤部分注釋掉或者刪除,如下:
在CMD輸入重新啟動(dòng)Server
也可以直接在RubyMine的命令行窗口輸入rails Server啟動(dòng)Server,
打開http://localhost:3000/say/hello:
七、創(chuàng)建一個(gè)使用MySQL數(shù)據(jù)庫的Rails項(xiàng)目
1.打開CMD窗口,進(jìn)入自定的項(xiàng)目保存目錄(如:D:\Ruby\Project),輸入命令:rails new work --database《使用的數(shù)據(jù)庫》(如:rails new work --databasemysql),在project目錄下創(chuàng)建名稱為work 的rails 項(xiàng)目結(jié)構(gòu)。
2. 必須將數(shù)據(jù)庫lib目錄里的libmysql.dll庫拷貝到 Ruby安裝目錄的Bin目錄下。否則在啟動(dòng)服務(wù)器時(shí)候會(huì)提示:“沒有找到LIBMYSQL.dll,因此這個(gè)應(yīng)用程序未能啟動(dòng)。重新安裝應(yīng)用程序可能會(huì)修復(fù)此問題。”
可以使用mysql-connector,下載地址:
http://www.mysql.com/downloads/connector/c/
或者wampServer,下載地址:
http://download.csdn.net/detail/heshi_yao/8874515?locationNum=3&fps=1
我最終使用的是wampServer的mysql里的libmysql.dll。
wampServer安裝可參考wampserver安裝筆記
先打開wampserver連接數(shù)據(jù)庫,在啟動(dòng)Server,后打開http://127.0.0.1:3000/,如下:
3).修改數(shù)據(jù)庫的配置信息。在 /項(xiàng)目目錄/config/database.yml 文件中,分別對應(yīng) “開發(fā)”、“測試”,“生產(chǎn)” 數(shù)據(jù)庫的配置,把他們修改為自己的配置。
其中development是我們開發(fā)中要實(shí)際使用的數(shù)據(jù)庫。一定要注意在username: 和 password: 后面至少要保留一個(gè)空格。
4.在CMD窗口輸入rake db:craete? 命令,會(huì)在msyql 中創(chuàng)建由配置信息中所設(shè)置的數(shù)據(jù)庫。
5.我們用scaffold來生成代碼,在CMD中輸入下面指令:
rails generate scaffold post title:string body:string addTime:datetime
這時(shí)候會(huì)創(chuàng)建controller, views, models和數(shù)據(jù)庫腳本,但此時(shí)還沒有創(chuàng)建表。
再輸入:rake db:migrate 創(chuàng)建表。完成。
6.執(zhí)行命令rails server,打開網(wǎng)頁http://localhost:3000/posts 訪問頁面已經(jīng)生成的增刪改查代碼,可能出現(xiàn)異常:
解決方法,安裝node.js.再重啟Server。
后通過瀏覽器訪問:http://localhost:3000/posts 這個(gè)頁面已經(jīng)為我們生成了增刪改查代碼
7)把你的rails網(wǎng)站啟動(dòng)在端口888上
rails s -p 888
可以看到http://localhost:3000/posts變成了http://localhost:888/posts才能打開網(wǎng)頁:
點(diǎn)擊New Post
輸入信信息,點(diǎn)擊back,查看