跳轉到內容

Ruby on Rails/入門/模型-檢視-控制器

來自華夏公益教科書,開放書籍,為開放世界
上一頁:入門/不要重複自己 索引 下一頁:入門/約定優於配置

模型-檢視-控制器

[編輯 | 編輯原始碼]
Rails 中的 MVC 架構

如前所述,Rails 依賴於 MVC 模式。模型-檢視-控制器比傳統概念有一些優勢

  • 它將您的業務邏輯與(基於 HTML 的)檢視分開
  • 使您的程式碼整潔,並保持在一個地方

模型表示資料庫中的資訊和資料。它儘可能獨立於資料庫(Rails 自帶 O/R-Mapper,允許您更改為應用程式提供資料的資料庫,但不更改應用程式本身)。模型還在資料進入資料庫之前進行驗證。大多數情況下,您將在資料庫中找到一個表,並在應用程式中找到一個相應的模型。

檢視是應用程式的展示層。檢視層負責渲染您的模型為一種或多種格式,例如 XHTML、XML 或甚至 Javascript。Rails 支援任意文字渲染,因此支援所有文字格式,但也包括對 Javascript 和 XML 的顯式支援。在檢視中,您將找到(大多數情況下)帶有嵌入式 Ruby 程式碼的 HTML。在 Rails 中,檢視預設情況下使用ERb 實現。

控制器

[編輯 | 編輯原始碼]

控制器連線模型和檢視。在 Rails 中,控制器作為ActionController 類實現。控制器知道如何處理來自模型的資料,以及如何將資料傳遞到檢視。控制器不應包含任何與資料庫相關的操作(例如,在資料儲存到資料庫之前修改資料)。這應該在適當的模型中處理。

當您在檢視中經常使用的程式碼太大/太亂,無法放在檢視中時,您可以在助手內為它定義一個方法。在助手內定義的所有方法都可以在檢視中自動使用。

最佳實踐

[編輯 | 編輯原始碼]

當前的最佳實踐包括

  • 胖模型和瘦控制器
  • 業務邏輯應該始終放在模型中
  • 檢視應該包含最少的程式碼
  • 使用助手!
  • 使用模型
  • DRY(不要重複自己)
華夏公益教科書