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

下載本文檔

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

文檔簡介

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

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

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

4、中。README.rdoc程序的簡單說明。你應(yīng)該修改這個文件,告訴其他人這個程序的作用,如何安裝等。test/單元測試,固件等測試用文件tmp/臨時文件,例如緩存,PID,會話文件。vendor/存放第三方代碼。經(jīng)常用來放第三方 gem。$ rails serverrails server -b 對所有IP開放上述命令會啟動 WEBrick,這是 Ruby 內(nèi)置的服務(wù)器。要查看程序,請打開一個瀏覽器窗口,訪問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。打開 app/views/welcome/index.html.erb 文件,寫入下面這行代碼:VCActive ControllerActive View MActive RecordActive RecordActive Reco

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

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

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

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

11、例如 resources 等),無需再指定 :path 或 :controller,URL 和路徑的幫助方法也能保持一致性Rails 路由作用Rails 路由能識別 URL,將其分發(fā)給控制器的動作進行處理,還能生成路徑和 URL,無需直接在視圖中硬編碼字符串。HTTP 方法方法路徑路徑控制器控制器#動作動作作用作用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 方法和動作方法和動作rake routes常用命令行命令:GithubTwiter36kr快速迭代的特性快速迭代的特性快速市場試水與響應(yīng)能力快速市場試水與響應(yīng)能力最擁抱最擁抱web最新標準的框架最新標準的框架招人風(fēng)險招人風(fēng)險性能風(fēng)險性能風(fēng)險

溫馨提示

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

評論

0/150

提交評論