Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

ActiveSupport | Object#to_query

概要

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"