忽略可变数量的路由参数

时间:2014-02-28 09:35:56

标签: ruby-on-rails

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

我想路由任何类型的这些:

'/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

它有效,但我知道必须有一种更优雅的方式。

提前感谢您的协助。

0 个答案:

没有答案