[英]How does path variable goes to params in rails
我问这个问题是因为我想我对 rails params 的工作原理不太了解。
我想知道路径变量如何进入 rails params 或映射到 rails params 中的键和值。 如果我点击 url localhost:3000/x/y/2 get 'x/y/:id'
,这里 2 将转到带有键 id 的参数:如 params [id: 2]。 怎么做的。 任何人都可以在这里帮助理解它。
URL http://localhost:3000/x/y/2
会导致向 Rails 服务器上的端口 3000 发出请求,如下所示:
GET /x/y/2 http/1.1
Host: localhost
服务器接收请求并将其分解为各个部分。
Rails 将路径与您的路线进行比较,并发现它与get '/x/y/:id'
匹配。 2 设置为params[:id]
。 然后它调用路由指定的控制器方法。
如需更多信息,请阅读Rails Routing from the Outside In和HTTP 1.1 Request Messages 。
不知何故,@schwern 的答案是正确的,但实际情况发生在 Rails.application.routes.recognize_path '/account/1', method: :get this will convert your path to {:controller=>"books", :action =>“检查”,:id=>“1”}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.