お世話になっております。
現在,データベースにGETでレコードの問い合わせに関するバグが発生したと問い合わせを受けたため,
原因を調査したところ。GETメソッドでのクエリパラメータのvalueの指定に&が入っている文字列が
あり,リクエスト先のアクションにブレイクポイントを設定して,調べたところ,&の位置で,key,value
ペアができてしまい,得たいhashに整形できていないことがわかりました。
以下出力をダミーで送ります。
ruby
1#http://hoge.com/?item="tiger&bunny":get 2 3def action 4 puts params 5 #=> {item=>"tiger",bunney:nil} 6 puts params["item"] 7 #=> "tiger" 8end
railsだと,URLエンコードするという方法で&として,解釈されるようにすることができたのですが,
これはrailsだから自動でdecodeされるのですか?
というのも,記事を調べると,自分で明示的にデコードするようなものが多かったため,気になりました。
また,リクエストパラメータのメタ文字を文字列として扱いたい場合,urlencodeするという対処法は正しいでしょうか?
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/04/07 09:11