0%

Ruby on Rails 網站開發 練習 - 002 (Rails 運作模式)

Rails 運作模式

  • Route + MVC

先進到專案中的routes.rb

建立 Route

輸入

1
resources candidates // 這行表示要建立 candidates 相關的資源出來
  • 其實在做網址設計的時候,我們會把每一個網址或是 url 當作資源來看待
  • 早期的命名習慣 /member_edit.php?id=2/edit_member.php?id=2/member.php?id=2

  • REST 風格

    GET /members => list.all // 列出所有的會員資料
    GET /members/2 //表示要看2號會員的資料
    GET /members/edit //表示要編輯2號會員的資料
    GET /books //表示要看所有的書
    GET /books/2 //表示要看2號書的資料
    GET /books/2/edit //表示要編輯2號書

  • 回到檔案中,輸入完resources candidates後

    打開終端機輸入rails routes
    會看到一個路徑對照表(Routes),看到 Rails 幫我們產生的8條路徑,7個方法(action)

如果想要看到少一點的路徑,比如只要看到index,show。可以輸入


再打開終端機輸入一次rails routes,明顯看到路徑變少了


路徑都打開了,先啟動rails server,接著就打開瀏覽器來確認一下
在網址列輸入https://localhost:3000/candidates
沒有意外的話,會看到紅色的錯誤訊息<Routes沒有找到CandidatesController>


這時候不用擔心,看到錯誤訊息出現表示是正確的。
竟然沒有找到CandidatesController,那我們就自己做給Routes。
打開終端機輸入rails generate controller candidates 或是 rails g controller candidates
如果不用指令,我們就自己動手建立一個,找到專案裡面的/app/controllers按右鍵新增檔案
檔案名稱:candidates_controller.rb // 這邊記得檔案名稱使用蛇式(snake_case)命名法。
而檔案裡面的
class名稱:CandidatesController // 使用駝峰式(CamelCase)命名法。


而這個 CandidatesController 繼承自已經寫好的ApplicationController
建立好之後,我們一樣回到瀏覽器,再次的進入 candidates 頁面,重新整理,登愣!還是一樣出現紅色的錯誤訊息頁面

看看錯誤訊息寫了什麼? index 這個 action 找不到。
跟之前一樣,找不到 action?!我們做給你


在 controller 建立 index action


建立完成後,打開瀏覽器,又出現新的錯誤訊息,沒有找到對應 index 的樣板(template)


一樣的方式,少了什麼東西,我們就做給你。其實 template 就是view裡面的頁面。
來到 view 當中,直接新增一個資料夾並命名candidates。
會這樣命名,也是依照 Rails 的慣例 (CoC)。


新增一個index.html.erb檔案


到這邊就算建立完成一個index,下一堂課程就要開始來新增Candidate

參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)