iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

Ruby on Rails JS系列 第 13

Ruby on Rails Route 起步走

  • 分享至 

  • twitterImage
  •  

舉個例⼦來說,這個網址:

http://rubyonrails.com/posts/123

Rails 會根據 config/routes.rb 這個檔案的內容,比對在網址後⾯的
/posts/123 應該交給誰處理。假設檔案內容如下:
11 Routes
143

Rails.application.routes.draw do
get "/posts", to: "posts#index"
get "/posts/:id", to: "posts#show"
end

其中,這兩⾏:

get "/posts", to: "posts#index"
get "/posts/:id", to: "posts#show"

的意思就是,「當使⽤者輸入 /posts 這個網址,它會交由 posts#index 來處
理,意思是 PostsController 上的 index ⽅法;同理,當使⽤者輸入
/posts/123 這個網址之後,它會轉由 PostsController 上的 show ⽅法,
並且把 123 當做參數(:id)傳給 Controller」。
想像⼀下這個情境:

客⼈上⾨了...
客⼈:「你好,我想要看所有的⽂章列表(輸入網址 /posts )」
Route:「好的,我幫你轉接到 PostsController 部⾨的 index 櫃台,請
他幫您服務」
客⼈:「等等,我改變主意了,我只想要看第 87 號⽂章就好(輸入網址
/posts/87 )」
Route:「沒問題,請您⼀樣到 PostsController 部⾨,但這次請找 show
櫃台,並且把 87 這個號碼牌給他,他會替您調閱資料」
客⼈:「那請問可以給我看看使⽤者的列表嗎(輸入網址 /users )」
Route:「不好意思,⽬前我們沒有相關資料喔(回應 HTTP 404)」

Route 的⾓⾊就類似是這樣,負責解讀使⽤者輸入的網址,然後轉去對應的地⽅,
剩下的,就是 MVC(Model, View, Controller)的事了。


上一篇
Ruby on Rails 模組(Module)
下一篇
Ruby on Rails RESTful 網址設計
系列文
Ruby on Rails JS29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言