我一直在努力寻找一种方法来忽略某些特定点之后的可变数量的路线参数。
我想路由任何类型的这些:
'/item/param1/:filename'
'/item/param1/param2/:filename'
'/item/param1/..../paramn/:filename'
到普通
'/item/:filename'
:filename
可以包含任何字符,包括空格和点,但“/”除外。
除第一个和最后一个外,所有参数都应该被忽略。
基本上,我正在尝试实现一条全能路线。
我尝试了不同的方法,围绕
match '/item/*filename'
无济于事,我用有限数量的可选参数结束了“强制执行”,如下所示:
match '/item(/:a(/:b(/:c(/:d(/:e)))))/*filename', :constraints => { :filename => /[^\/]*/ }, to: "controller#action", via: :get, format: false
它有效,但我知道必须有一种更优雅的方式。
提前感谢您的协助。