मैं ऐसी समस्या को डीबग करने का प्रयास कर रहा हूं जहां रेल JSON पोस्ट डेटा को डीकोड नहीं कर रहा है।रेल JSON अनुरोध पोस्ट पैरामीटर में सही ढंग से पार्स नहीं किया गया है
सर्वर लॉग दिखाने:
2011-12-14T06:44:44+00:00 app[web.2]: Started POST
2011-12-14T06:44:44+00:00 app[web.2]: Processing by PostsController#create as */*
2011-12-14T06:44:44+00:00 app[web.2]: Parameters: {"{\"athlete_id\":\"\",\"known_as\":\"abc\",\"email\":\"[email protected]\",\"result\":\"112233\",\"rx\":false,\"mods\":\"thkjth\",\"notes\":\"\"}"=>nil, "affiliate_id"=>"testaffiliate", "wod_id"=>"12345"}
ध्यान दें कि JSON स्ट्रिंग पार्स नहीं किया जा रहा है - रेल, हैश में एक महत्वपूर्ण के रूप में यह बताए है एक नहीं के बराबर मूल्य की ओर इशारा करते। क्या इससे पहले कि मैं पहले_फिल्टर लिखने से पहले किसी के पास कोई विचार है जो JSON.parse सभी पैराम्स कुंजी की कोशिश करता है?
मुझे नहीं लगता कि यह प्रासंगिक है क्योंकि मैं डेटा भेज रहा हूं और प्राप्त कर रहा हूं, लेकिन यह समस्या आईई से एक कोर अनुरोध के दौरान होती है (XDomainRequest का उपयोग करके)।
मैंने पाया कि यह (यूनिकॉर्न पर) मैं अनुरोध के शरीर को एक कुंजी के रूप में पैराम में शामिल करता हूं: '{'theBodyOfRequest' => nil,: controller => उपयोगकर्ता,: action => 'update'} 'के आधार पर आपके उपयोग के मामले में यह समस्याएं पैदा कर सकता है। चूंकि यह पहला पैरामीटर है, इसलिए मैंने इसे हटाने के लिए 'params.shift' जोड़ा। – Peter
@ कॉलिन, हाँ - मैं जिस डेटा को पोस्ट कर रहा था वह मूल रूप से JSON '{: foo =>" bar "}' (जिसे भेजने के लिए स्ट्रिंग किया गया था) था ताकि नियंत्रक पर पैराम जैसा दिख सके: '{" {\ "foo \" => \ "बार \"} => शून्य, "नियंत्रक" => "उपयोगकर्ता" ...} ' – Peter
@ पीटर, जो कि प्रश्न में वर्णित मूल समस्या की तरह लगता है, है ना? क्या आप निश्चित हैं कि आपका फ़िल्टर चलाया जा रहा है? – colllin