Ruby:嵌套参数的http POST不起作用

时间:2016-08-03 14:26:12

标签: ruby-on-rails http basic-authentication

我正在尝试使用POST和嵌套参数进行Http基本身份验证。 外部参数工作正常(class.name - ActionController :: Parameters),嵌套参数是字符串(class.name - String) 这是我的代码 - >

require 'net/http'

uri = URI('http://example.com/bulb/')
req = Net::HTTP::Post.new(uri)
req.basic_auth 'mytest@somesite.com', 'mypassword'

req.set_form_data('first_params' => 'a', 'seconnd_params'=>'b', 'netsed_params'=>{'first_netsed'=>'c', 'second_nested'=>'d'}, 'commit'=>'Create Bulb', 'action'=>'create', 'controller'=>'bulb')

res = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(req)
end

case res
when Net::HTTPSuccess, Net::HTTPRedirection
  # OK  
else
  #failed
end

我可以使用哪些其他库来使嵌套参数无需手动转换即可运行。我看到set_form_data无法使用嵌套哈希

1 个答案:

答案 0 :(得分:2)

试试这个

req.set_form_data('first_params' => 'a', 'second_params'=>'b', 'nested_params[first_nested]' => 'c', 'nested_params[second_nested]' => 'd'}, 'commit'=>'Create Bulb', 'action'=>'create', 'controller'=>'bulb')