动态路由轨道

时间:2015-05-20 15:16:08

标签: ruby-on-rails routing

我正在使用以下路线定义的应用中工作。

get 'list/:city(/:zone)(/:district)'

当我想抓住像

这样的网址时,它非常有效
/list/milan
/list/milan/milan-ovest
/list/milan/milan-ovest/brera

现在,我们正在转向一些漂亮的网址,最后我们需要一个漂亮的名字。像这样的东西

 /list/milan/renting-apartment-in-milan
 /list/milan/milan-ovest/renting-apartment-in-milan-center
 /list/milan/milan-ovest/brera/renting-apartment-in-brera

我知道外卡,但我找不到可行的解决方案。实际上,可以忽略附加元素,这意味着它不提供任何有用的信息。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

你总是可以在一个glob风格的路径中存根:

get 'list/*path'

那将在该点之后捕获任意数量的元素,并将它们作为params[:path]提供给您。这将是一个数组。

这方面的缺点是他们不会提前被打破,但你总是可以通过任务来解决这个问题:

city, zone, district, *extra = params[:path]