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 に答える