https://xxxx
といった文字列のURLに、 クエリパラメータをつけて URL を作る場合、 クエリパラメータは 特別な形に変換する必要があります。
JavaScript でいう encodeURIComponent
を実行してやる必要があります。
これにより +
は %2B
に、 &
は %26
になります。
基本
Ruby では CGI.escape
を使います。
require 'cgi'
CGI.escape('+ &') # => "%2B+%26"
使用例
CGI.escape
を使って URL を組み立ててみます。
ハッシュを使うなどいろいろと改善できるところはありますが、ここではシンプルなパターンを記載します。
"https://samole.com?key={CGI.escape(value)}"
key
に特殊な文字を使うことはまずないと考えて value
のみ escape をしています。
key
も escape する場合は、
https://github.com/rails/rails/blob/3-0-stable/activesupport/lib/active_support/core_ext/object/to_query.rb が参考になります。