0

我有一个简单的控制器:

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 以外的东西吗?

4

1 回答 1

2

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

于 2016-01-07T19:24:32.613 回答