[解決済み】Ruby:ハッシュをHTTPパラメータに変換する方法は?
2022-04-07 19:51:55
質問
のようなプレーンなハッシュを使えば、とても簡単です。
{:a => "a", :b => "b"}
に変換されます。
"a=a&b=b"
しかし、次のような複雑なものはどうするのでしょうか?
{:a => "a", :b => ["c", "d", "e"]}
に変換されるはずです。
"a=a&b[0]=c&b[1]=d&b[2]=e"
あるいはさらに悪いことに、(どうしよう)というようなことです。
{:a => "a", :b => [{:c => "c", :d => "d"}, {:e => "e", :f => "f"}]
その節は大変お世話になり、ありがとうございました
解決方法は?
更新してください。 この機能は gem から削除されました。
Julienさん、あなたの自己回答は良いもので、私も恥ずかしながら拝借しました。しかし、予約文字を適切にエスケープしておらず、他にもいくつかのエッジケースで破綻しています。
require "addressable/uri"
uri = Addressable::URI.new
uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
uri.query
# => "a=a&b[0]=c&b[1]=d&b[2]=e"
uri.query_values = {:a => "a", :b => [{:c => "c", :d => "d"}, {:e => "e", :f => "f"}]}
uri.query
# => "a=a&b[0][c]=c&b[0][d]=d&b[1][e]=e&b[1][f]=f"
uri.query_values = {:a => "a", :b => {:c => "c", :d => "d"}}
uri.query
# => "a=a&b[c]=c&b[d]=d"
uri.query_values = {:a => "a", :b => {:c => "c", :d => true}}
uri.query
# => "a=a&b[c]=c&b[d]"
uri.query_values = {:a => "a", :b => {:c => "c", :d => true}, :e => []}
uri.query
# => "a=a&b[c]=c&b[d]"
gemは' アドレス指定可能 '
gem install addressable
関連
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み] Java - POSTメソッドでHTTPパラメータを簡単に送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ruby:kind_of? vs. instance_of? vs. is_a?
-
[解決済み] Rubyの除算はなぜ10進数ではなく整数を返すのですか?
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] Rubyの配列から文字列への変換
-
[解決済み] gemをインストールできない - makeが内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されない。
-
[解決済み] Ruby: 文字列をブーリアンに変換する方法
-
[解決済み] Rubyでリフレクション?
-
[解決済み] Rubyの予期しないキーワードの終了、および予期しない入力の終了
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法
-
[解決済み] JanusのセットアップにVIMプラグインを追加する