url_escape()の使いどころ

入力フォームから別のアクションにリンクでリダイレクトするとします。このとき入力フィールドの値を持っていきたいんですが、リダイレクトすると paramsはクリアされて持っていけないと。ちょっと汚い手ですが、こういうことをよくやります。

link_to '■ パスワード忘れ', forgot_password_path + "?email=#{params[:email]}"

こうすると、いった先で params[:email]が使えてハッピーです。

ちょっとした注意

メールアドレスが URLに積まれて受け渡しされるので、このままだと+などの入ったメールアドレスが化けます。

"test+1@example.com" → "test 1@example.com"

こうしておきましょう。

link_to '■ パスワード忘れ', forgot_password_path + "?email=#{u(params[:email])}"

u()は url_escape()と同じです。