Ruby On Rails的路由如何知道当我们点击url时要击中哪个控制器

时间:2017-05-18 11:47:54

标签: ruby-on-rails ruby ruby-on-rails-4 routes

当我们点击网址时,ROR路由如何识别要触发的控制器方法。

2 个答案:

答案 0 :(得分:3)

Ruby on Rails官方文档以一种全面且易于理解的方式解释了这个问题:

http://guides.rubyonrails.org/routing.html

答案 1 :(得分:3)

这是一种将传入请求重定向到控制器和操作的方法。它取代了mod_rewrite规则。最重要的是,Rails'路由适用于任何Web服务器。路由在app / config / routes.rb中定义。

考虑将路线创建为为您的请求绘制地图。地图根据一些预定义的模式告诉他们去哪里。

routes.rb文件定义应用程序中可用的操作以及get,post和patch等操作类型。

<强>像:   得到&#39;照片/:id&#39; =&GT; &#39;照片#show&#39;,:defaults =&gt; {:format =&gt; &#39; JPG&#39; }

上述路线的标准化值为。

app: #<ActionDispatch::Routing::RouteSet::Dispatcher:0x007fd05e0cf7e8
           @defaults={:format=>"jpg", :controller=>"photos", :action=>"show"},
           @glob_param=nil,
           @controller_class_names=#<ThreadSafe::Cache:0x007fd05e0cf7c0
           @backend={},
           @default_proc=nil>>
conditions: {:path_info=>"/photos/:id(.:format)", :required_defaults=>[:controller, :action], :request_method=>["GET"]}
requirements: {}
defaults: {:format=>"jpg", :controller=>"photos", :action=>"show"}
as: nil
anchor: true