2012-10-12 13 views
6

मैं मेटीर 4.2 (विंडोज) का उपयोग कर रहा हूं और मुझे हमेशा "अपडेट विफल: 403 - एक्सेस अस्वीकृत कर रहा है। प्रतिबंधित संग्रह में दस्तावेज़ को प्रतिस्थापित नहीं किया जा सकता" जब मैं कोशिश कर रहा हूं मेरे संग्रह में किसी ऑब्जेक्ट को अपडेट करने के लिए। आश्चर्यजनक रूप से मुझे नए डालने में कोई समस्या नहीं थी, केवल अपडेट विफल रहे हैं।उल्का: प्रतिबंधित संग्रह में दस्तावेज़ को प्रतिस्थापित नहीं कर सकता

मैं अपने संग्रह पर सब कुछ "अनुमति दें" करने की कोशिश की:

Maps.allow({ 
    insert: function() { return true; }, 
    update: function() { return true; }, 
    remove: function() { return true; }, 
    fetch: function() { return true; } 
}); 

लेकिन फिर भी, इस अद्यतन में विफल रहता है:

Maps.update({ 
    _id: Session.get('current_map') 
}, { 
    name: $('#newMapName').val() 
}); 

वहाँ कुछ और मैं जाँच कर सकते हैं? या शायद मेरा कोड गलत है? पिछली बार जब मैंने अपनी परियोजना के साथ खेला था तो मीटियर के पिछले संस्करण (< 4.0) के साथ था।

आपकी मदद के लिए धन्यवाद।

पीएस: केवल जानकारी के लिए, जब मैं यह अद्यतन करता हूं, स्थानीय संग्रह अद्यतन किया जाता है, मैं यूआई में परिवर्तन देख सकता हूं। फिर बहुत तेज़ी से इसे त्रुटि संदेश के साथ वापस कर दिया जाता है, क्योंकि सर्वर-पक्ष द्वारा परिवर्तन अस्वीकार कर दिए गए हैं।

उत्तर

8

ठीक है, वाक्यविन्यास वास्तव में गलत था। मैं वास्तव में समझ में नहीं आता क्यों के रूप में यह पहले अच्छी तरह काम कर रहा था, लेकिन वैसे भी, यहाँ कोड है कि ठीक काम करता है:

Maps.update({ 
    Session.get('current_map') 
}, { 
    $set: { 
     name: $('#newMapName').val() 
    } 
}); 
+0

यह $ सेट बिट (बचाने के लिए सामग्री $ सेट में लिपटे किया जाना चाहिए), मैं बस, इस समस्या को और धन्यवाद आपके उत्तर का मैं अपने दुर्घटना देखा में भाग धन्यवाद :) –

+0

धन्यवाद, आप मेरा दिन बचाया: डी – Nick

0

ऐसा लगता है कि यह क्या आप 'current_map' में भंडारण कर रहे हैं से संबंधित होना चाहिए सत्र चर। यदि यह एक डीबी ऑब्जेक्ट है, तो शायद यह {_id:<mongo id here>} जैसा दिखता है जो अद्यतन खोजक को ठीक से काम करेगा।

मैं एक ही मुद्दों में भाग गया, और ब्लॉक मैं के मोंगो ऑब्जेक्ट id

Blocks.update {_id:block_id}, {$set: params} 

जहां पैरामीटर सभी बिट्स की एक हैश मैं अपडेट करना चाहते हैं और block_id काम करने के लिए पीछा कर रहा है पाया मैं अद्यतन करने की कोशिश कर रहा हूँ।

क्लाइंट साइड अपडेट (जो अद्यतन को चमकता है और फिर वापस करता है) के बारे में आपका नोट व्यवहार की अपेक्षा की जाती है। यदि आप Data and Security section:

के तहत अपने दस्तावेज़ों की जांच करते हैं, तो उल्का में एक प्यारा चाल है। जब कोई ग्राहक सर्वर पर लिखने को जारी करता है, तो यह सर्वर की प्रतिक्रिया के इंतजार किए बिना तुरंत अपने स्थानीय कैश को भी अपडेट करता है। इसका मतलब है कि स्क्रीन तुरंत वापस ले जाएगी। अगर सर्वर ने अपडेट स्वीकार कर लिया है - सही ढंग से व्यवहार करने वाले क्लाइंट में अधिकांश समय क्या होना चाहिए - तो क्लाइंट को बदलाव पर कूद आया और उसे अपनी स्क्रीन को अपडेट करने के लिए राउंड ट्रिप की प्रतीक्षा नहीं करनी पड़ी। यदि सर्वर परिवर्तन को अस्वीकार करता है, तो उल्का सर्वर के परिणाम के साथ क्लाइंट के कैश को पैच करता है।

संबंधित मुद्दे