我正在使用以下路线定义的应用中工作。
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
我知道外卡,但我找不到可行的解决方案。实际上,可以忽略附加元素,这意味着它不提供任何有用的信息。
谢谢大家。
答案 0 :(得分:0)
你总是可以在一个glob风格的路径中存根:
get 'list/*path'
那将在该点之后捕获任意数量的元素,并将它们作为params[:path]
提供给您。这将是一个数组。
这方面的缺点是他们不会提前被打破,但你总是可以通过任务来解决这个问题:
city, zone, district, *extra = params[:path]