Ruby on rails_第1頁(yè)
Ruby on rails_第2頁(yè)
Ruby on rails_第3頁(yè)
Ruby on rails_第4頁(yè)
Ruby on rails_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Ruby1RubyGems2SQLite33需要安裝的軟件Rails 是使用 Ruby 語(yǔ)言編寫(xiě)的網(wǎng)頁(yè)程序開(kāi)發(fā)框架,目的是為開(kāi)發(fā)者提供常用組件,簡(jiǎn)化網(wǎng)頁(yè)程序的開(kāi)發(fā)。只需編寫(xiě)較少的代碼,就能實(shí)現(xiàn)其他編程語(yǔ)言或框架難以企及的功能。Rails 是一個(gè)用 Ruby 編寫(xiě)的全棧的(full-stack)、開(kāi)源的 Web 框架,可以使用它來(lái)輕松編寫(xiě)實(shí)際的應(yīng)用程序,所需的代碼也要比大多數(shù)框架花在處理 XML 上的代碼少。不要自我重復(fù)(不要自我重復(fù)(DRY)DRY 是軟件開(kāi)發(fā)中的一個(gè)原則,“系統(tǒng)中的每個(gè)功能都要具有單一、準(zhǔn)確、可信的實(shí)現(xiàn)?!?。不重復(fù)表述同一件事,寫(xiě)出的代碼才能更易維護(hù),更具擴(kuò)展性,也更不容易出

2、問(wèn)題。多約定,少配置多約定,少配置Rails 為網(wǎng)頁(yè)程序的大多數(shù)需求都提供了最好的解決方法,而且默認(rèn)使用這些約定,不用在長(zhǎng)長(zhǎng)的配置文件中設(shè)置每個(gè)細(xì)節(jié)。$ gem install rails安裝 Rails,請(qǐng)使用 RubyGems 提供的 gem install 命令。$ rails new blog這個(gè)命令會(huì)在文件夾 blog 中新建一個(gè) Rails 程序。$ bundle install 執(zhí)行 bundle install 命令安裝 Gemfile 中列出的 gem。文件文件/文件夾文件夾作用作用app/存放程序的控制器、模型、視圖、幫助方法、郵件和靜態(tài)資源文件。bin/存放運(yùn)行程序的 r

3、ails 腳本,以及其他用來(lái)部署或運(yùn)行程序的腳本。config/設(shè)置程序的路由,數(shù)據(jù)庫(kù)等config.ru基于 Rack 服務(wù)器的程序設(shè)置,用來(lái)啟動(dòng)程序。db/存放當(dāng)前數(shù)據(jù)庫(kù)的模式,以及數(shù)據(jù)庫(kù)遷移文件。Gemfile, Gemfile.lock這兩個(gè)文件用來(lái)指定程序所需的 gem 依賴件,用于 Bundler gemlib/程序的擴(kuò)展模塊。log/程序的日志文件。public/唯一對(duì)外開(kāi)放的文件夾,存放靜態(tài)文件和編譯后的資源文件。Rakefile保存并加載可在命令行中執(zhí)行的任務(wù)。任務(wù)在 Rails 的各組件中定義。如果想添加自己的任務(wù),不要修改這個(gè)文件,把任務(wù)保存在 lib/tasks 文件夾

4、中。README.rdoc程序的簡(jiǎn)單說(shuō)明。你應(yīng)該修改這個(gè)文件,告訴其他人這個(gè)程序的作用,如何安裝等。test/單元測(cè)試,固件等測(cè)試用文件tmp/臨時(shí)文件,例如緩存,PID,會(huì)話文件。vendor/存放第三方代碼。經(jīng)常用來(lái)放第三方 gem。$ rails serverrails server -b 對(duì)所有IP開(kāi)放上述命令會(huì)啟動(dòng) WEBrick,這是 Ruby 內(nèi)置的服務(wù)器。要查看程序,請(qǐng)打開(kāi)一個(gè)瀏覽器窗口,訪問(wèn)http:/localhost:3000。Lets GoHello World Demorails generate controller welcome indexcre

5、ate app/controllers/welcome_controller.rb route get welcome/indexinvoke erbcreate app/views/welcomecreate app/views/welcome/index.html.erbinvoke test_unitcreate test/controllers/welcome_controller_test.rbinvoke helpercreate app/helpers/welcome_helper.rbinvoke assetsinvoke coffeecreate app/assets/jav

6、ascripts/welcome.js.coffeeinvoke scsscreate app/assets/stylesheets/welcome.css.scss在這些文件中,最重要的當(dāng)然是控制器,位于 app/controllers/welcome_controller.rb,以及視圖,位于 app/views/welcome/index.html.erb。打開(kāi) app/views/welcome/index.html.erb 文件,寫(xiě)入下面這行代碼:VCActive ControllerActive View MActive RecordActive RecordActive Reco

7、rd 是 MVC 中的 M(模型),處理數(shù)據(jù)和業(yè)務(wù)邏輯。Active Record 負(fù)責(zé)創(chuàng)建和使用需要持久存入數(shù)據(jù)庫(kù)中的數(shù)據(jù)。Active Record 實(shí)現(xiàn)了 Active Record 模式,是一種對(duì)象關(guān)系映射系統(tǒng)。模型模型/類類數(shù)據(jù)表數(shù)據(jù)表/模式模式PostpostsLineItemline_itemsDeerdeersMousemicePersonpeople數(shù)據(jù)表名:復(fù)數(shù),下劃線分隔單詞(例如 book_clubs)模型類名:?jiǎn)螖?shù),每個(gè)單詞的首字母大寫(xiě)(例如 BookClub)根據(jù)字段的作用不同,Active Record 對(duì)數(shù)據(jù)表中的字段命名也做了相應(yīng)的約定:外鍵外鍵 - 使用 s

8、ingularized_table_name_id 形式命名,例如 item_id,order_id。創(chuàng)建模型關(guān)聯(lián)后,Active Record 會(huì)查找這個(gè)字段;主鍵主鍵 - 默認(rèn)情況下,Active Record 使用整數(shù)字段 id 作為表的主鍵。使用 Active Record 遷移創(chuàng)建數(shù)據(jù)表時(shí),會(huì)自動(dòng)創(chuàng)建這個(gè)字段;其他:created_at - 創(chuàng)建記錄時(shí),自動(dòng)設(shè)為當(dāng)前的時(shí)間戳;updated_at - 更新記錄時(shí),自動(dòng)設(shè)為當(dāng)前的時(shí)間戳;lock_version - 在模型中添加樂(lè)觀鎖定功能;type - 讓模型使用單表繼承;創(chuàng)建Active Record 模型Active ViewAc

9、tion View 和 Action Controller 是 Action Pack 的兩個(gè)主要組件。在 Rails 中,請(qǐng)求由 Action Pack 分兩步處理,一步交給控制器(邏輯處理),一步交給視圖(渲染視圖)。Rails 中的視圖也有命名約定。一般情況下,視圖名和對(duì)應(yīng)的控制器動(dòng)作同名,如上所示。例如,posts_controller.rb 控制器中的 index 動(dòng)作使用 app/views/posts 文件夾中的 index.html.erb 視圖文件。我們來(lái)看一下使用腳手架創(chuàng)建資源時(shí),Rails 做了哪些事情:Active ControllerAction Controller

10、 是 MVC 中的 C(控制器)。路由決定使用哪個(gè)控制器處理請(qǐng)求后,控制器負(fù)責(zé)解析請(qǐng)求,生成對(duì)應(yīng)的請(qǐng)求。Action Controller 會(huì)代為處理大多數(shù)底層工作,使用易懂的約定,讓整個(gè)過(guò)程清晰明了。Rails 控制器的命名習(xí)慣是,最后一個(gè)單詞使用復(fù)數(shù)形式復(fù)數(shù)形式,但也是有例外,比如 ApplicationController。例如:用 ClientsController,而不是 ClientController;用 SiteAdminsController,而不是 SiteAdminController 或 SitesAdminsController。遵守這一約定便可享用默認(rèn)的路由生成器(

11、例如 resources 等),無(wú)需再指定 :path 或 :controller,URL 和路徑的幫助方法也能保持一致性Rails 路由作用Rails 路由能識(shí)別 URL,將其分發(fā)給控制器的動(dòng)作進(jìn)行處理,還能生成路徑和 URL,無(wú)需直接在視圖中硬編碼字符串。HTTP 方法方法路徑路徑控制器控制器#動(dòng)作動(dòng)作作用作用GET/photosphotos#index顯示所有圖片GET/photos/newphotos#new顯示新建圖片的表單POST/photosphotos#create新建圖片GET/photos/:idphotos#show顯示指定的圖片GET/photos/:id/editphotos#edit顯示編輯圖片的表單PATCH/PUT/photos/:idphotos#update更新指定的圖片DELETE/photos/:idphotos#destroy刪除指定的圖片CRUD,HTTP 方法和動(dòng)作方法和動(dòng)作rake routes常用命令行命令:GithubTwiter36kr快速迭代的特性快速迭代的特性快速市場(chǎng)試水與響應(yīng)能力快速市場(chǎng)試水與響應(yīng)能力最擁抱最擁抱web最新標(biāo)準(zhǔn)的框架最新標(biāo)準(zhǔn)的框架招人風(fēng)險(xiǎn)招人風(fēng)險(xiǎn)性能風(fēng)險(xiǎn)性能風(fēng)險(xiǎn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論