わいえむねっと

Contents
Categories
Calendar
2014/01
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.018 sec
Chashed: -
2014/01/22 Wed
パーセントエンコーディングしたパラメータを渡すとRailsのルーティングで処理されずに404になるのはなんでなんだぜと思っていたのが昨晩の話。

テストデータに軒並み「%2F」か「%2E」が含まれていたせいでした。
ああ。(※1)


※1)%2Fは"/"、%2Eは"."で、どちらも標準のセパレータ。そのままではパラメータとして扱われない。



メモ routesについて - いしかきの日記
http://d.hatena.n​e.jp/gakkiy/20080117/1200534547​
routesで定義するルーティングのパラメータに区切り文字が入っている場合の対応方法

Rails3.2 でWebアプリケーションを作成
http://merrill777​.blog135.f​c2.com/page-4.html
デフォルトでは、:id パラメータはドットを受け付けません。これは、ドットがルートのセパレーターとして使われるためです。もし:id にドットを含めたい場合は、これをオーバーライドする制約を追加します。

あたりを参考にアレコレしたみたけど思うように処理されず。
使用しているバージョンの問題か。



ならセパレータ文字が含まれないように処理するかーとURLセーフなBase64にエンコードしようとしたら、urlsafe_encode64どころかstrict_encode64すら使えなかったのでカッフン。

仕方ないのでurlsafe_encode64相当の処理を書いたら想定していた動作をするようになったけど、ちょっとなーと。