У меня есть условие, когда мне нужно передать параметр как массив хэшей, который выглядит так:
Ниже приведен метод почты Rack:: Test для вызова API.
post "#{url}.json",
:api_key => application.key,
:data => [{"Company"=>"Apple,Inc","Website"=>"Apple.com"},{"Company"=>"Google","Website"=>"google.com"}],
:run => { :title => "The First Run" }
И это журнал приложения rails.
Parameters: {"api_key"=>"6a9acb84d0ea625be75e70a1e04d26360606ca5b", "data"=>[{"Company"=>"Apple,Inc", "Website"=>"Apple.com"}, {"Company"=>"Google", "Website"=>"google.com"}], "run"=>{"title"=>"The First Run"}, "line_id"=>"4e018e2c55112729bd00000a"}
Теперь это метод PostClient, который я использую для вызова API.
RestClient.post("/lines/#{@line.id}/runs.json", {:run => {:title => @title}, @param_for_input => @param_data})
И это журнал приложения rails.
Parameters: {"run"=>{"title"=>"run name"}, "data"=>{"Company"=>"Google", "Website"=>"google.com"}, "api_key"=>"f488a62d0307e79ec4f1e6131fa220be47e83d44", "line_id"=>"4e018a505511271f82000144"}
Разница заключается в параметре data
.
При отправке с помощью метода Rack:: Test данные передаются как "data"=>[{"Company"=>"Apple,Inc", "Website"=>"Apple.com"}, {"Company"=>"Google", "Website"=>"google.com"}]
но с помощью метода RestClient массив данных параметров удаляется, и только последний хеш передается как "data"=>{"Company"=>"Google", "Website"=>"google.com"}
Почему RestClient лишает массив хэшей только последний хэш массива?