我问这个问题是因为我想我对rails参数是如何工作的没有很好的理解。
我想知道路径变量如何进入rails参数或映射到rails参数中的键和值。get 'x/y/:id'
如果我点击url localhost:3000/x/y/2,这里的2将进入键id的参数:如params[id: 2]。它是怎么。谁能请帮助来理解它。
URLhttp://localhost:3000/x/y/2
导致向Rails服务器上的端口3000发出请求,如下所示:
GET /x/y/2 http/1.1
Host: localhost
服务器接收请求并将其分解为各个部分。
- 方案:http
- 版本:1.1
- 主持人:localhost
- 端口:3000
- 路径:/x/y/2
- 方法:
Rails将路径与您的路由进行比较,并看到它与get '/x/y/:id'
匹配。2设置为params[:id]
。然后调用路由中指定的控制器方法。
了解更多信息,请阅读Rails路由从外部到内部和HTTP 1.1请求消息。
不知何故@schwern的答案是正确的,但实际情况是在幕后发生的Rails.application.routes。识别路径'/account/1',方法::get这会将您的路径转换为{:controller=>" book";:action=>"check";:id=>"1"}