通过 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}]
我有一个简单的控制器:
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}]