概要
Object#to_query
詳細
Object#to_paramについて
Object#to_query
クエリ文字列を作成する際に利用される。
Arrayはキーが空で "user=aaa&user=bbb"のようになる。
Hashはクエリー文字列を想定しているため、aaa='aaa'&bbb='bbb'&ccc='ccc'のような文字列を返却する。
Hash利用時に引数を指定すると、 "user[aaa]=aaa&user[bbb]=bbb"のようになる。(仮に引数に'user'を指定した場合)
※実際には[]の部分はエスケープされて%5B%5Dになる。
サンプル
# encoding: utf-8 require "active_support/core_ext/object/to_query" require "tbpgr_utils" puts_eval '[:hoge, :hige].to_query("test")', binding puts_eval '{aaa: "aaa", bbb: "bbb", ccc: "ccc"}.to_query', binding puts_eval '{aaa: "aaa", bbb: "bbb", ccc: "ccc"}.to_query("user")', binding
出力
[:hoge, :hige].to_query("test") # => "test%5B%5D=hoge&test%5B%5D=hige" {aaa: "aaa", bbb: "bbb", ccc: "ccc"}.to_query # => "aaa=aaa&bbb=bbb&ccc=ccc" {aaa: "aaa", bbb: "bbb", ccc: "ccc"}.to_query("user") # => "user%5Baaa%5D=aaa&user%5Bbbb%5D=bbb&user%5Bccc%5D=ccc"