タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

Object#to_param / Object#to_query(key)

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/conversions.rb https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/to_param.rb https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/to_query.rb ```ruby require 'active_support/core_ext/object/conversions' ``` で利用可能になるメソッド。 # to_param クエリパラメータ用の値の形に変換する。 key=valueの「value」の部分。 # to_query(key) `key`で指定したパラメータ名で取得できる、クエリパラメータの形に変換する。 ##基本 ``` key=val ``` ##配列 ``` key=val1&key=val2&key=val3` ``` ※実際にはブラケット``はURLエスケープされて`%5B%5D`となる ##ハッシュ ``` key[hashkey1]=val1&key[hashkey2]=val2&key[hashkey3]=val3 ``` ハッシュについては引数`key`を省略できて、ハッシュのキーと値がそのままクエリパラメータの名前と値に対応する文字列を返す。 ``` hashkey1=val1&hashkey2=val2&hashkey3=val3 ``` ※実際にはブラケット`[]`はURLエスケープされて`%5B%5D`となる #サンプルコード ```ruby require 'bundler/setup' require 'active_support/core_ext/object/conversions' require 'pp' val = 100 array = [1, 2, 3] hash = { hoge: 'fuga', val: 100 } date = Date.today # to_param pp val.to_param # => 100 pp array.to_param # => "1/2/3" pp hash.to_param # => "hoge=fuga&val=100" pp date.to_param # => "2014-04-02" # to_query pp val.to_query('val') # => "val=100" pp array.to_query('array') # => "array%5B%5D=1&array%5B%5D=2&array%5B%5D=3" pp hash.to_query('hash') # => "hash%5Bhoge%5D=fuga&hash%5Bval%5D=100" pp hash.to_query # => "hoge=fuga&val=100" pp date.to_query('date') # => "date=2014-04-02" ```