如果讀者已經開發過基于 Rails 的應用,但對其 MVC 間的數據傳遞還有諸多困惑,那么恭喜您,本文正是要總結梳理 Rails 數據傳遞的方法和技巧。Ruby on Rails 3(以下統稱為 Rails 3)是當前的主要發布版本,本文所述及的內容和代碼都基于此版本。
Rails 3 簡介
Ruby on Rails 是一個 Ruby 實現、采用 MVC 模式的開源 Web 應用開發框架,能夠提供 Web 應用的全套解決方案。它的“習慣約定優于配置”的設計哲理,使得 Web 開發人員能夠從繁瑣的配置中解放出來,專注于核心的應用邏輯?!傲晳T約定優于配置”是 Rails 根據最佳經驗習慣,提供可直接使用的功能及規范,而不再需要開發人員通過復雜的配置文件進行具體繁瑣的設置。Ruby on Rails 快速高質的開發特性及其數量眾多的免費插件,吸引了包括 Twitter、Groupon 和 Hulu 等大批互聯網新貴。
快速創建 Rails 3 應用程序
為了逐步演示 Rails 3 的功能特性,此處采用增量模式開發一個簡單的博客模型。 在安裝完 Rails3 之后,運行命令:Rails new demoBlog 。
demoBlog 應用程序所需的各類文件就自動生成。進入生成的文件夾 demoblog,運行自動安裝 demoBlog 所需 gem 的命令:bundle install 。
然后在 $rorails/demoblog/config/database.yml 中簡單地配置數據庫文件,運行創建數據庫的命令:rake db:create 。
至此,簡單的 demoBlog 創建完畢,運行服務器啟動命令:rails server 。
打開 http://localhost:3000 就可以看到 Rails 3 的典型歡迎頁面,如圖 1 所示。
圖 1. Rails 3 的典型歡迎頁面
Rails 腳手架可以快速地為新資源建立起模型、視圖和控制器,而不必處理其中的細節。直接運行以下命令,為 demoBlog 建立一個 article 腳手架,用于管理博客里的文章。運行腳手架建立命令:rails generate scaffold Article title:string keywords:string content:text
這將生成 article 控制器、 article 的視圖文件和含有 title、 keyword 及 content 三個屬性的 article 模型。運行數據庫遷移命令,生成相關數據表:rake db:migrate 。 此時,一個簡單但結構完整的文章管理系統就開發完成。 通過 URL:http://localhost:3000/articles/就可以直接訪問其文章管理頁面。
Rails 3 MVC 架構解析
Rails 3 采用 MVC(Model 模型、View 視圖、Controller 控制器)層級架構實現核心功能模塊。這不僅使業務邏輯獨立于用戶界面,代碼清晰易于維護,還能夠提高代碼重復利用率,達成 Rails“不重復自己”的原則。Rails 中 MVC 的功能分別如下:
Model(模型):代表應用系統的數據信息以及操作這些數據的規則; View(視圖):代表應用系統的用戶接口,通常是包含嵌入式 Ruby 代碼的 HTML 文件,用于向瀏覽器提供數據的工作; Controller(控制器):主要負責處理 Web 請求,檢索模型數據并按要求將數據傳遞給視圖??刂破魇悄P秃鸵晥D的聯系橋梁。新聞熱點
疑難解答