रेल में अभिगम नियंत्रण नियंत्रक स्तर पर किया जाता है, न कि मॉडल स्तर पर। नतीजतन, रेल मॉडल कोड के अंदर से वर्तमान उपयोगकर्ता, कुकीज़, वगैरह तक पहुंचने के लिए कोई तंत्र प्रदान नहीं करता है। यदि आप चुनते हैं, तो आप पैरामीटर द्वारा डेटा को मॉडल में फेरी कर सकते हैं। हालांकि, यह उद्योग के कुछ बेहतरीन प्रोग्रामर के डिजाइन निर्णयों की अनदेखी करना होगा, इसलिए मुझे लगता है कि यह शायद एक अच्छा विकल्प नहीं है।
दूसरे शब्दों में, वह न करें जो आप करने का प्रयास कर रहे हैं। अपने मॉडल में चीजों को कैसे करना है, इसका ज्ञान रखें, लेकिन कंट्रोलर में नियंत्रण रखें कि कौन उन्हें कर सकता है।
दूसरी तरफ, यदि आप किसी कारण से वर्तमान उपयोगकर्ता को स्टोर करने का प्रयास कर रहे हैं, तो आपको इसे किसी प्रकार के एसोसिएशन (या नेस्टेड दस्तावेज़, क्योंकि आप मोंगो का उपयोग कर रहे हैं) द्वारा करना चाहिए। उस स्थिति में, current_user
. का उपयोग न करें मॉडल के अंदर, बल्कि एक attr_accessor
बनाएं उपयोगकर्ता पर, उपयोगकर्ता को अपने मॉडल के उदाहरण पर current_user
. पर सेट करें नियंत्रक में, और फिर इसे अपने कॉलबैक में सहेजें जैसा कि आपको चाहिए।