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