के साथ POST/PUT का उपयोग करके मैं इसे थोड़ी देर के लिए देख रहा हूं, और वर्तमान में नुकसान में हूं। मैंने जेएसओएन से संबंधित होने के लिए समस्या को कम कर दिया है, और जेएसओएन एक सुस्पष्ट प्रारूप में नहीं भेजा जा रहा है।रेल 3.2 - सक्रिय संसाधन - JSON
हम पहले रेल 3.0.7 का उपयोग कर रहे थे (जहां समस्या का वर्णन करने वाला मैं अस्तित्व में नहीं था)। हमें कुछ नई कार्यक्षमताओं का लाभ उठाने के लिए रेल को अपग्रेड करना होगा - लेकिन अब यह समस्या है। मुझे इस बिंदु पर लगभग यकीन है कि यह एक साधारण विन्यास या कुछ है, लेकिन मुझे इसके बारे में कुछ और आंखों की ज़रूरत है।
हम ActiveResource ऑब्जेक्ट्स का उपयोग कर रहे हैं, और ऑब्जेक्ट के मानों को सेट करने और इसे सहेजने (इस प्रकार एक पुट बनाने) पर, हमें अब 403 मिलते हैं: निषिद्ध वेब सेवा से निषिद्ध है। यह वेब सेवा परत पर कोई समस्या नहीं है।
एक नई वस्तु बनाने और पोस्ट करने पर, हमें 40 9 मिल रहे हैं: संघर्ष वापस लौटाया गया है क्योंकि यह डिफ़ॉल्ट मानों के साथ डेटाबेस को अद्यतन करने का प्रयास करता है - इस प्रकार जिसका अर्थ है कि जेसन डेटा सेवा तक नहीं पहुंच रहा है - या यह सुगम नहीं है।
मेरी समस्या यह है कि यह रेल 3.0.7 में काम करता है, और अब 3.2.3 (या 3.1.3 जो मैंने कोशिश की) में काम नहीं करता है। मैं जेएसओएन डेटा के अलावा अन्य सुझावों के लिए खुला हूं, हालांकि मुझे पूरा यकीन है कि यही वह मुद्दा है जहां समस्या है।
ActiveResource::Base.include_root_in_json = false
ActiveSupport::JSON.backend = "json_gem"
किसी भी सुझाव के लिए धन्यवाद:
मेरे ActiveResource मॉडल
self.format = :json
मैं अपने प्रारंभकर्ता फ़ाइलों में से एक में निम्न होना है!
अद्यतन
मैं कर्ल के साथ बाहर का परीक्षण किया गया है और यह द्वारा काम करने के लिए गया:
curl -H "Content-Type: application/json" -d "{\"userID\":\"xxx\", \"label\":\"doc.test.test\", \"value\":\"1,19\", \"id\":\"-1\"}" -v -X POST http://host:port/usermanagement/users/xxx/prefs
मुझे मिल गया है कि काम करने के लिए, लेकिन
यह सामग्री दिखाई देता है -टाइप हेडर स्पष्ट रूप से सेट होना चाहिए अन्यथा यह 415 में परिणाम: मीडिया अपरिचित त्रुटि
यदि मैं ActiveResource ऑब्जेक्ट में सामग्री-प्रकार शीर्षलेख सेट करता हूं, तो मुझे अभी भी 40 9 मिलती है: संघर्ष त्रुटि - जो मुझे विश्वास करती है कि JSON अभी भी ठीक तरह से गठित नहीं है।
संपादित करें (फिर से)
मैं पता लगा है जहां JSON के साथ मुद्दा है - रेल JSON में जड़ बना रहा हो। इस प्रकार के बजाय संसाधन वापस
{"name":"value", "name":"value"}
के रूप में भेजने की यह
{"ResourceName": {"name":"value", "name":"value"}}
हालांकि भेज रहा है, मैं गलत पर include_root_in_json
निर्धारित किया है - मैं दोनों प्रारंभकर्ता फाइलों में यह करने की कोशिश की, और सीधे मॉडल अपने आप में , और कोई बदलाव नहीं।
तो मैं इस अपने मॉडल में 'to_json' विधि अधिभावी बस' वापस जाने के लिए self.attributes.to_json' द्वारा "निर्धारित" - हालांकि, अगर किसी के पास विचार है कि 'include_root_in_json' कॉन्फ़िगरेशन क्यों काम नहीं कर रहा है, तो भी मैं बहुत उत्सुक हूं क्योंकि मुझे लगता है कि कॉन्फ़िगरेशन एक और अधिक शानदार समाधान होगा। धन्यवाद! – Krista
आप समाधान को उत्तर के रूप में जोड़ना चाहते हैं और इसे स्वीकार कर सकते हैं ... – Smar
धन्यवाद! अच्छा विचार – Krista