我正在寻找一些帮助来定义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]集合中。
答案 0 :(得分:1)
此路线应该有效:
/:name-?:size?-?:colour?.:format
您的第一个示例几乎是正确的,但您还需要在连字符之后添加?
以使它们成为可选项。
你也可能在format
面前忘记了一个冒号。