Rails对URL请求中包含的信息进行了编码,其通常形式为:controller/action/id格式的URL。
当应用程序接到浏览器请求时,由路由(routing)组件分析并解析处理请求。路由器将其折分为几部分:controller、action、id。
Rails识别出控制器后,便创建该控制器的一个实例,并调用它的process()方法,传入请求与应答对象作为参数。
然后,控制器调用其中与action同名的方法,如果没有找到,则调用method_missing.
action方法负责协调其他对象来实际实际请求。
如果action方法没有明确指定渲染哪个视图就返回了,那么控制器就会尝试渲染与action同名的模板。如果找不到一个合适的action方法来调用,控制器也会直接尝试渲染模板--也就是说,如果只是想要显示一个模板,你并不需要为它创建一个action方法。