मैं Thread.current
हैश में जानकारी संग्रहीत करने के अभ्यास (जैसे, current_user, वर्तमान उपडोमेन, आदि) पर परस्पर विरोधी राय प्राप्त करता रहता हूं । तकनीक को मॉडल परत (क्वेरी स्कूपिंग, ऑडिटिंग, आदि) के भीतर बाद के प्रसंस्करण को सरल बनाने के तरीके के रूप में प्रस्तावित किया गया है।
- मेरे थ्रेड वैरिएबल रेल में रुक क्यों रहे हैं?
- रेल के लिए एपीआई आवरण में थ्रेड.वर्तमान का उपयोग करने के लिए वैकल्पिक
- क्या Thread.current [] मान और वर्ग स्तर की विशेषताएँ रेल में उपयोग करने के लिए सुरक्षित हैं?
कई लोग इस अभ्यास को अस्वीकार्य मानते हैं क्योंकि यह एमवीसी पैटर्न को तोड़ता है। अन्य लोग दृष्टिकोण की विश्वसनीयता / सुरक्षा के बारे में चिंता व्यक्त करते हैं, और मेरा 2-भाग प्रश्न बाद के पहलू पर केंद्रित है।
क्या
Thread.current
हैश उपलब्ध होने की गारंटी देता है और निजी और केवल एक प्रतिक्रिया के लिए, अपने पूरे चक्र में?मैं समझता हूं कि एक प्रतिक्रिया के अंत में, एक धागा, अन्य आवक अनुरोधों को सौंप दिया जा सकता है, जिससे किसी भी जानकारी को संग्रहीत किया जा सकता है
Thread.current
। प्रतिक्रिया समाप्त होने से पहले इस तरह की जानकारी को साफ़ करना (जैसेThread.current[:user] = nil
एक नियंत्रक से निष्पादितafter_filter
) इस तरह के सुरक्षा उल्लंघन को रोकने के लिए पर्याप्त है?
धन्यवाद! ग्यूसेप