所以我们有一个遗留系统来跟踪 ID 为“Europe/France/Paris”的地方,我正在构建一个 Rails 外观来将其转换为 http://foobar/places/Europe/France/Paris 之类的 URL。这个要求是没有商量余地的,可能的关卡数量是无限的,我们也逃不过斜线。
为http://foobar/places/Europe设置 routes.rb很简单:
map.resources :places
...但是 http://foobar/places/Europe/France 抱怨“没有对欧洲采取行动”。我试过:
map.connect '/places/:id', :controller => 'places', :action => 'show'
...但这给出了相同的结果,显然 :id 在第一个'/'处结束。如何使 ID 涵盖“地点”之后的所有内容?