我试图了解rails收到get / post命令和提供页面之间发生的事件序列。 我只是试图自己绘制序列,我意识到我并不完全了解自己哪些脚本甚至先运行所以我想在脑海中清除它。

非常感谢

乔恩

===============>>#1 票数:3 已采纳

请求进入路由匹配器,它解析URL,解析config / routes.rb,如果URL匹配路由,它会查找名称与URL的控制器部分匹配的控制器文件(例如http:// localhost) / categories将查找CategoriesController)

然后,发生以下两件事之一:

  1. 如果您正在使用Rails restful路由,则路由匹配器应用启发式算法来确定要调用的7个动作中的哪个:多个最后一个部分的GET映射到索引; 在将复数映射到显示之后映射到ID外观部分的GET(例如,类别/ 1或类别/某物或类别/ 1-something); POST到复数的最后一部分被映射到创建; 在将复数映射到更新之后,将PUT转换为ID外观部分; 对同一个URL的DELETE映射到destroy; 新建和编辑映射到类别/新&类别/编辑的GET。
    1. 如果您有自定义操作,则必须在控制器对象中使用同名的方法。

执行所选操作,然后Rails在操作中呈现渲染调用中指定的模板/文件/操作,或者查找与操作同名的视图文件,并以.html.erb结尾(默认情况下)在app / views /目录中。

简单。

===============>>#2 票数:2

Rails做了很多事情,获得​​一个体面的概述的好方法是阅读rails指南中的“Action Controller Overview”文档: http//guides.rubyonrails.org/action_controller_overview.html

基本结构是:

  1. 机架中间件
  2. 路由
  3. 过滤器
  4. 控制器代码
  5. 翻译
  6. 过滤器

但是rails也可以根据请求做很多事情。 它会根据您的接受标头自动确定您想要的响应类型,和/或如果您手动指定所需的响应类型,文件结尾如/blog/1.xml。 Rails还神奇地创建了一个格式良好的params散列,解析了诸如user [name] = foo到{:user => {:name =>“foo”}}之类的参数。 Rails还有内置的异常处理和一些很好的东西,以防止跨站点请求伪造等等,所以请查看控制器概述中的内容。

  ask by jonathan topf translate from so

未解决问题?本站智能推荐: