• Rails 開發工作的大部分集中在創建和編輯 apps 目錄下的文件。

  • 先來了解一下這個目錄下的結構。
    Apps 目錄下包含四個主要目錄,它們分別是 Controllers, models, views, helpers

    1:Controllers 目錄存放 rails 應用中相應的 controller 類,controller 類處理來自用戶的 web 請求。
    2:views 目錄存放相應的模板文件,模板文件填充數據后,轉換為 html 格式傳遞給用戶的瀏覽器。
    3:models目錄存放數據模型類,模型類封裝了數據庫中的數據。很多框架在數據模型層都做的比較復雜,用過 rails 后,你會發現它非常容易使用。
    4:helpers 目錄存放了簡化 Controllers, models, views 使用的幫助類。

    編輯 controller 類
    開始使用 Rails 之前,我們需要了解一下 rails 是如何將 controller 類中的方法和 url 映射到一起的,這對于理解 rails 工作原理很重要。
    rails 在生成的 skeleton 框架中包含了一個 scripts 目錄,這個目錄中包含了很多腳本程序,它們可以幫助我們來簡化很多工作,我們已經使用過了 script\server 這個腳本,它是用來啟動 webrick 服務器的。現在我們看看如何生成默認的 controller 文件
    打開新的 DOS 命令行,在C:\student目錄下運行 ruby script\generate controller MyTest

    C:\student\app\controllers 目錄中將生成一個包含 MyTestController 類定義骨架的名為 my_test_controller.rb 的文件
    鼠標右鍵點擊此文件,選擇”edit” 打開編輯此文件。




    在瀏覽器中訪問 http://127.0.0.1:3000/My_Test/

    瀏覽器響應沒有找到對應的 index 方法,不要擔心,這不是什么大問題,因為默認生成的控制器類,不包含任何方法。不過這里我們了解到,如果不輸入任和 url 連接的話,默認rails 需要在控制器類中找一個 index 的方法。這很容易理解,類似于 apache 服務器中目錄下面的 index.html 文件一樣。
    我們現在編輯這個 MyTestController 類。
    如圖:



    重新刷新剛才的頁面 http://127.0.0.1:3000/My_Test/ ,你會看到如下結果



    在瀏覽器中運行 http://127.0.0.1:3000/My_Test/keywen



    了解到 rails 是如何將 url 和控制器中的函數做簡單映射的。

    需要做一些解釋,在運行 ruby script\generate controller MyTest 的時候, rails 做了一些默認的假設。 MyTest 對應的 controller 文件是 my_test_controller.rb, 文件中控制器類名是 MyTestController,而 url 映射是 /My_Test/ .
    這些默認規定的好處是:我不需要編輯復雜的配置文件,只要對相應的文件做編輯就可以了。只需要關注程序邏輯,而不是其它什么,這就是 rails 設計原則中的“約定優于配置”。

    另外我們也感覺到 ruby 動態語言的好處,這點是 java 所無法辦到的。我們在編輯完 controller 后,重新刷新頁面,就可以使程序生效。對于編譯型的 java 語言來說,不重新編譯,重新啟動服務器是無法做到這點的。Rails 開發的易用性可見一斑了,要知道啟動和編譯都是非常耗費時間的,尤其對于那些 EJB 服務器來說更是如此。