2009-03-08 12 views
5

मेरे रेल ऐप में, मेरे पास लॉगिन पृष्ठ है। उस व्यक्ति के लॉग इन करने के बाद, मेरे ऐप को लॉग इन करने वाले व्यक्ति को ट्रैक करना जारी रखने का सबसे अच्छा तरीका क्या है। उदाहरण के लिए, यदि उपयोगकर्ता अलग-अलग पृष्ठों पर जाता है, तो मेरे नियंत्रक/क्रिया उस उपयोगकर्ता का ट्रैक खो देंगे जब तक कि मैं पास नहीं करता उपयोगकर्ता द्वारा बाद में आने वाले प्रत्येक पृष्ठ के बीच परिवर्तनीय। क्या ऐसा करने का कोई बेहतर तरीका है? क्या मुझे sessions चर का उपयोग करना चाहिए?रेल: उपयोगकर्ता की आईडी को ट्रैक करना

उत्तर

7

हां, सत्र वही हैं जो आप खोज रहे हैं।

@current_user = User.find(session["user_id]") 
+0

ध्यान रखें रहे हैं कि जो डिफ़ॉल्ट मैं में लगता है अगर आप, कुकी आधारित सत्र का उपयोग कर रहे रेल 2.1+ है कि लॉग इन करने के लिए यह डेटा बदला जा सकता है। – Tilendor

+2

असल में कुकी के पास SHA512 फ़िंगरप्रिंट आपके आधार पर है आर एप्लिकेशन की गुप्त कुंजी डेटा के साथ छेड़छाड़ सुनिश्चित करने के लिए। इसका मतलब यह है कि कुकी सामग्री क्लाइंट साइड पर उपलब्ध है, इसलिए आपको सर्वर डेटा स्टोर में बदलने तक संवेदनशील डेटा (पासवर्ड इत्यादि) संग्रहीत करने से बचना चाहिए। – Palm

4

जोरदार इस प्रबंधन के लिए एक प्लगइन पर विचार करें:

session["user_id"] = user_id 

और वर्तमान (यदि आपके मॉडल कहा जाता है उपयोगकर्ता) दूसरे पृष्ठ पर उपयोगकर्ता को लाने के लिए।

कई हैं, जैसे restful authentication

यह current_user और logged_in? कार्यक्षमता देता है।