次のようなハッシュの配列としてパラメーターを渡す必要がある条件があります。
以下は、API 呼び出しの Rack::Test ポスト メソッドです。
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"}
さて、これは API を呼び出すために使用している RestClient ポスト メソッドです。
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 がハッシュの配列を削除して、配列の最後のハッシュにするのはなぜですか?