Ruby on rails 忽略数量可变的路由参数

Ruby on rails 忽略数量可变的路由参数,ruby-on-rails,Ruby On Rails,我一直在努力寻找一种方法来忽略在某个特定点之后出现的数量可变的路线参数 我想路由任何类型的: '/item/param1/:filename' '/item/param1/param2/:filename' '/item/param1/..../paramn/:filename' 说明 '/item/:filename' :filename可以包含除“/”以外的任何字符,包括空格和点。 除第一个和最后一个参数外,应忽略所有参数 基本上,我正在尝试实现一个全面覆盖的路线 我试过各种不同的方法,

我一直在努力寻找一种方法来忽略在某个特定点之后出现的数量可变的路线参数

我想路由任何类型的:

'/item/param1/:filename'
'/item/param1/param2/:filename'
'/item/param1/..../paramn/:filename'
说明

'/item/:filename'
:filename可以包含除“/”以外的任何字符,包括空格和点。 除第一个和最后一个参数外,应忽略所有参数

基本上,我正在尝试实现一个全面覆盖的路线

我试过各种不同的方法,到处都是

匹配“/item/*filename”

没有用,我已经结束了用有限数量的可选参数对它的粗暴操作,如下所示:

match '/item(/:a(/:b(/:c(/:d(/:e)))))/*filename', :constraints => { :filename => /[^\/]*/ }, to: "controller#action", via: :get, format: false
这是可行的,但我知道一定有更优雅的方法


提前感谢您的帮助。

可能是我刚试过的副本。它还将斜杠传递给文件名。我不想那样。这是我试图实现的全部目标。将“/item/:a/*文件名,:constraints=>{:a=>/.*/,:filename=>/[^\/]*/}匹配到:controlleraction,via::get,format:false如何?如果将其作为一个答案,则您是+25!!换句话说,Uri的解决方案工作得非常完美