通过 Unirest 将复杂对象传递给 rails 操作

Passing complex object to rails action via Unirest

我有一个简单的控制器:

class ApplicationController < ActionController::Base
  def test_action
    render plain: "OK"
  end
end

我正在使用 Unirest 通过单独的 ruby 文件发布到操作:

require 'unirest'

resp = Unirest.post "localhost:3000/test_action.json", 
                    headers:{ "Accept" => "application/json" }, 
                    parameters:{ foo: 1, my_list: [{foo: 1}, {foo: 2}] }

puts resp.body

当我 运行 时,我在 rails 控制台中看到以下内容:

Parameters: {"foo"=>"1", "my_list"=>{"foo"=>"2"}}

为什么 my_list 中的第一项不见了?我怎样才能让它出现?我应该为此使用 Unirest 以外的东西吗?

使用哈希时,第二个键值将覆盖第一个。 foo: 2 最后读取并且是 foo 的最后一个赋值。如果您希望第一项出现,您应该将其重命名为 [{"foo1":"1"}, {"foo2": 2}]