Rails對URL請求中包含的信息進行了編碼,其通常形式為:controller/action/id格式的URL。
當應用程序接到瀏覽器請求時,由路由(routing)組件分析并解析處理請求。路由器將其折分為幾部分:controller、action、id。
Rails識別出控制器后,便創建該控制器的一個實例,并調用它的process()方法,傳入請求與應答對象作為參數。
然后,控制器調用其中與action同名的方法,如果沒有找到,則調用method_missing.
action方法負責協調其他對象來實際實際請求。
如果action方法沒有明確指定渲染哪個視圖就返回了,那么控制器就會嘗試渲染與action同名的模板。如果找不到一個合適的action方法來調用,控制器也會直接嘗試渲染模板--也就是說,如果只是想要顯示一個模板,你并不需要為它創建一個action方法。