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/)