Sinatra文件名成params

时间:2016-04-25 14:10:56

标签: regex sinatra

我正在寻找一些帮助来定义Sinatra中的路线,该路线与带有一些可选参数的文件名匹配。

/:name-:size?-:colour?.format

i.e. /robert-50-red.png

但是我希望尺寸和颜色都是可选参数。因此,将支持以下所有路径。

/robert.png
/robert-50.png
/robert-50-red.png

更新

还需要涵盖由多个单词组成的名称。

/Mr Robert Rawlins-50.png

我使用传统的路由语法,但由于连字符而没有太大的乐趣。

在理想世界中,这些参数将被命名为集合中的参数,即params [:name],而不是仅仅列在params [:captures]集合中。

1 个答案:

答案 0 :(得分:1)

此路线应该有效:

/:name-?:size?-?:colour?.:format

您的第一个示例几乎是正确的,但您还需要在连字符之后添加?以使它们成为可选项。

你也可能在format面前忘记了一个冒号。