मैं रेल अपवाद-नोटिफ़ायर मणि के साथ रेल 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
लाइन के लिए, मैं या नहीं, यह सही समाधान है पर इनपुट के लिए देख रहा हूँ है।
क्या आपको कभी इसका जवाब मिला? –