У меня есть условие, когда мне нужно передать параметр в виде массива хэшей, который выглядит так:
Ниже приведен метод публикации 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"}
Теперь это метод публикации RestClient, который я использую для вызова 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 удаляет массив хэшей только до последнего хэша массива?
@param_data
это то, что вы думаете? Я использую RestClient и не видел таких проблем. - person d11wtq   schedule 22.06.2011@param_data = [{:Company => "Google", :Website => "google.com"}, {:Company => "Times", :Website => "times.com"}]
- person Autodidact   schedule 23.06.2011