1
以我rspec的測試支架/測試組合散列成一個,我定義散列以下數組和執行的POST:爲什麼執行POST時或PUT操作
body = {:event => { :invitations_attributes =>
[ {:recipient_id => 40}, {:email => '[email protected]'}, {:facebook_id => 123456789} ] } }
post "#{@url}.json", body.reverse_merge(:auth_token => @token)
基於上述,我期望的Rails服務器接收「invitations_attributes」作爲散列數組。然而,developer.log文件有以下:(在上面的參數, 「invitation_attributes」 陣列只包含1散列)
Parameters: {"auth_token"=>"RSySKfN2L8b5QPqnfGf7", "event"=>{"invitations_attributes"=>
[{"recipient_id"=>"40", "email"=>"[email protected]", "facebook_id"=>"123456789"}]}}
以下捲曲語句:
curl -X POST -H "Content-type: application/json" http://localhost:3000/api/v1/events.json -d '{"auth_token":"RSySKfN2L8b5QPqnfGf7","event":{"invitation_attributes":[{"recipient_id":40},{"email":"[email protected]"},{"facebook_id":123456789}]}}'
導致Rails'接收完整的哈希數組,如下面的日誌文件條目所證明的那樣。
Parameters: {"auth_token"=>"RSySKfN2L8b5QPqnfGf7", "event"=>{"invitation_attributes"=>
[{"recipient_id"=>40}, {"email"=>"[email protected]"}, {"facebook_id"=>123456789}]}}
機架/測試對於PUT操作和POST都表現出這種行爲。
爲什麼rack/test將3個散列組合爲1而不是完全按照定義發送數組?是否有一個設置會導致機架出現我期望的行爲?