1

我正在寻找创建一个可以调整图像大小的路线,并且我希望它具有以下格式:

/image/1024x768/hello.jpg

我需要动态收集宽度和高度,因此,我需要路由类似于:

/image/:widthx:height/:name.jpg

显然这是行不通的,因为 :width 会混合为 :widthx

我已经尝试寻找解决方案,但我似乎找不到一个 - 当然轨道路由不是那么严格以至于它不促进这个?

另外,我不想将“x”设置为“分隔符”,因为这意味着我不能将它用作图像文件名的一部分。

关于如何设置此路由的任何想法?

4

1 回答 1

3

您可以将命名参数括在括号中:

match 'resize/(:width)x(:height)/:image',
      :width => /\d+/, :height => /\d+/,
      :to => 'image#resize'

像这样的 URL/resize/100x400/hello.jpg最终将作为以下参数:

{
 "controller"=>"image",
 "action"=>"resize",
 "width"=>"100", "height"=>"400",
 "image"=>"hello", "format"=>"jpg"
}
于 2012-08-14T23:05:20.117 回答