Home > All > URL末尾が/の場合

URL末尾が/の場合

December 13th, 2008 Leave a comment Go to comments

railsにURLをパラメータとして渡す際、末尾が/で終わるURLを渡すと/が取り除かれてしまうため.join(‘/’)しても復元されません;
(最後が/だからって空文字列の配列要素が渡されるわけじゃない)
これを復元しなければ正確なURLとして扱えないので調べてみました
前述の通りroutes.rbを通過した時点で末尾の/は取り除かれています
そのため、今回はコントローラに渡される前のURL、即ちrequets.pathを参照して解決しました
これの末尾が/だったらその分を補完すればいいわけです

    # URLは/で区切られているので結合する
    @url = params[:url].join('/')
    # リクエストURLの末尾が/で終わっていたら取り除かれているので補完する
    @url = @url + '/' if /(\/$)/ =~ request.path

これで恐らくはURL周りの問題は片付いた…かな?

関連記事:

Tags: ,
  1. No comments yet.