2011-03-10 6 views
5

मैं रेल अपवाद-नोटिफ़ायर मणि के साथ रेल 3 चला रहा हूं। जब कोई अपवाद होता है, और एक ईमेल भेजा जाना चाहिए, तो मुझे पैरामीटर फ़िल्टर श्रेणी से अपवाद मिल रहा है। मुझे रेल स्रोत में समस्या मिली है, और मुझे यकीन नहीं है कि आगे बढ़ने का सबसे अच्छा तरीका है।रेल: पैरामीटर फ़िल्टर :: compiled_filter डुप्लिकेट करने की कोशिश करता है

समस्या एक्शनडिस्चैच :: एचटीपी :: पैरामीटर फ़िल्टर में होती है। Compiled_filter विधि में, लाइन 38: key = key.dup पर एक त्रुटि होती है जब key एक प्रतीक है, क्योंकि प्रतीकों डुप्लिकेट नहीं हैं।

def compiled_filter 
    ... 
    elsif blocks.present? 
     key = key.dup 
     value = value.dup if value.duplicable? 
     blocks.each { |b| b.call(key, value) } 
    end 

मैं देख रहा हूँ कि वे केवल value पर dup फोन जब यह duplicable है: यहाँ स्रोत है। अगर मैं key पर केवल dup पर key पर duplicable पर स्रोत को पैच करने के लिए स्रोत को पैच करता हूं, तो मेरी समस्या दूर हो जाती है। मुझे लगता है कि लेखक ने value पर key पर यह शर्त क्यों डाली है, इसलिए मुझे उत्सुकता है कि अगर कोई इस कोड की बेहतर समझ लेता है तो मुझे उत्सुकता है।

यह त्रुटि तब होती है जब आप application.rb में अपने फ़िल्टर पैराम्स में कोई ब्लॉक जोड़ते हैं। तो, शायद मेरे मूल मुद्दे के लिए एक समाधान है जिसके लिए यहां एक ब्लॉक का उपयोग करने की आवश्यकता नहीं है। यदि आप रुचि रखते हैं तो मेरे सहकर्मी के प्रश्न Rails: Filter sensitive data in JSON parameter from logs

कुंजी जिसके लिए यह समस्या है :action। यह रेल से आता है और मुझे नहीं पता कि इसके बजाय स्ट्रिंग होने के लिए मजबूर करने का कोई तरीका है या नहीं।

मैं एक रेल बग https://rails.lighthouseapp.com/projects/8994/tickets/6557-symbol-duplication-error-in-parameterfilter-compiled_filter दायर किया था और मैं एक पैच तैयार है कि कहते हैं अगर key.duplicable?key.dup लाइन के लिए, मैं या नहीं, यह सही समाधान है पर इनपुट के लिए देख रहा हूँ है।

+0

क्या आपको कभी इसका जवाब मिला? –

उत्तर

2

यह रेल में एक बग की तरह दिखता है। या तो कुंजी प्रतीक के बजाय स्ट्रिंग होना चाहिए, या dupduplicable? द्वारा संरक्षित किया जाना चाहिए।

आपको https://rails.lighthouseapp.com/ पर एक बग फाइल करना चाहिए, यदि संभव हो तो न्यूनतम परीक्षण केस भी शामिल है।

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