Ruby on rails 动态路由轨道
我正在使用以下路由定义的应用程序Ruby on rails 动态路由轨道,ruby-on-rails,routing,Ruby On Rails,Routing,我正在使用以下路由定义的应用程序 get 'list/:city(/:zone)(/:district)' 当我想要捕捉像这样的URL时,它可以完美地工作 /list/milan /list/milan/milan-ovest /list/milan/milan-ovest/brera 现在,我们将移动到一些漂亮的URL,在那里我们需要在最后放置一个漂亮的名称。像这样的 /list/milan/renting-apartment-in-milan /list/milan/milan-ov
get 'list/:city(/:zone)(/:district)'
当我想要捕捉像这样的URL时,它可以完美地工作
/list/milan
/list/milan/milan-ovest
/list/milan/milan-ovest/brera
现在,我们将移动到一些漂亮的URL,在那里我们需要在最后放置一个漂亮的名称。像这样的
/list/milan/renting-apartment-in-milan
/list/milan/milan-ovest/renting-apartment-in-milan-center
/list/milan/milan-ovest/brera/renting-apartment-in-brera
我知道通配符,但我没能找到一个有效的解决方案。实际上,附加元素可以忽略,这意味着它不提供任何有用的信息
谢谢大家。您可以始终在全局样式的路径中存根:
get 'list/*path'
这将捕获该点之后的任意数量的元素,并将它们作为参数[:path]提供给您,该参数将是一个数组
不利的一面是他们不会提前被打破,但你可以通过分配任务来解决:
city, zone, district, *extra = params[:path]