jpa*_*kal 3 routing ruby-on-rails hierarchical-trees hierarchy
所以我们有一个遗留系统跟踪ID为"欧洲/法国/巴黎"的地方,我正在构建一个Rails外观,将其转换为http:// foobar/places/Europe/France/Paris等URL.这个要求是不可协商的,可能的级别数量无限制,而且我们无法逃避斜线.
为http:// foobar/places/Europe设置routes.rb 是微不足道的:
map.resources :places
Run Code Online (Sandbox Code Playgroud)
...但是http:// foobar/places/Europe/France抱怨"没有行动回应欧洲".我试过了:
map.connect '/places/:id', :controller => 'places', :action => 'show'
Run Code Online (Sandbox Code Playgroud)
...但是这给出了相同的结果,显然:id结束于第一个'/'.如何使ID覆盖"地点"之后的任何内容和所有内容?
有关完整文档,请查看路由指南:
http://guides.rubyonrails.org/routing.html
特别是"4.9路线全球化"部分.
但我认为你真正想要做的就是声明你的路线:
map.connect '/places/*id', :controller => 'places', :action => 'index'
Run Code Online (Sandbox Code Playgroud)
用URL来调用
/places/foo/bar/1
Yields a params[:id] => ["foo", "bar", "1"]
Run Code Online (Sandbox Code Playgroud)
您可以轻松(重新)加入"/"以产生您想要的完整字符串"foo/bar/1"(您可能需要手动重新插入前导斜杠.
这应该让你去.
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |