我试图让我的头脑围绕在rails接收到get/post命令和页面服务之间发生的事件序列。我只是试图自己绘制出序列,并且我意识到自己并没有完全理解哪些脚本甚至是首先运行,所以我想在我的脑海中清除它。当你得到一个页面时,发生什么事件序列
千恩万谢
乔恩
我试图让我的头脑围绕在rails接收到get/post命令和页面服务之间发生的事件序列。我只是试图自己绘制出序列,并且我意识到自己并没有完全理解哪些脚本甚至是首先运行,所以我想在我的脑海中清除它。当你得到一个页面时,发生什么事件序列
千恩万谢
乔恩
该请求进入路由匹配器,该路由匹配器解析URL,解析config/routes.rb,并且如果URL匹配路由,它将查找其名称与URL的控制器部分相匹配的控制器文件(例如http://localhost/categories将寻找一个CategoriesController)
然后,一两件事情发生:
所选择的动作被执行并且然后Rails的任一呈现在动作内的渲染调用中指定的模板/文件/动作或它看起来对同一名称的视图文件作为动作和端部与.html.erb(默认情况下)在app/views /目录中。
简单。
Rails会相当多的东西,一个很好的方式得到一个体面的概述是阅读“动作控制器概述”的文件在护栏指南:http://guides.rubyonrails.org/action_controller_overview.html
的基本结构是:
但是轨也做本身很多事情的请求。它会根据您的接受标题自动确定您想要的响应类型,并且/或者如果您手动指定您希望使用类似/blog/1.xml文件的响应类型。 Rails也神奇地创建了一个很好格式化的参数散列,像{[user => {:name =>“foo”}}一样解析params像user [name] = foo这样的参数。 Rails也有内置的异常处理和一些不错的东西来防止跨站点请求伪造等等,所以请查看控制器概述以了解其中的内幕。
完美感谢您的链接 –
确定,所以(大大简化模型,视图的我敢肯定:)和控制文件控制器是第一个叫然后调用模型文件修改数据库和/或调用视图文件这使内容被提供给客户端 –
是的,:)。对不起,我以为你想要的东西比这更详细。 –
不,不,我没有,我只是要检查我的理解:) –