前提・実現したいこと
以下のコードで、post.rbを実行し、sinatra.rbで標準出力でa,b,cを出力させたいです。
現状だと、リクエストボディは文字列になって、sinatra.rbに渡ってしまい、eachでエラーが起きてしまいます。
どのようにしたら、配列で受け取れるのか、ご教授いただけないでしょうか。
post.rbでjoinして、sinatra.rbでsplitする方法以外でお願いいたします。
該当のソースコード
#post.rb require "net/http" require "uri" def post(route, params) uri = URI.parse("http://localhost:4567/#{route}") request = Net::HTTP::Post.new(uri) request.set_form_data(params) req_options = { use_ssl: uri.scheme == "https", } response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end end ary = ["a", "b", "c"] post("hoge", {hoge: ary}) #sinatra.rb require "sinatra" post "/hoge" do hoge_ary = params[:hoge] hoge_ary.each do |hoge| p hoge end end #=> a #=> b #=> c #と出力されたい
補足情報(FW/ツールのバージョンなど)
ruby 2.6.5
あなたの回答
tips
プレビュー