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

时间:2015-05-20 21:50:01

标签: ruby-on-rails ruby 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之外的东西吗?

1 个答案:

答案 0 :(得分:2)

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