2011-11-09 15 views
23

मैं रेल 3.0.9, रूबी 1.9.2, डेविस 1.3.4 का उपयोग कर रहा हूं और अनुरोध यूआरएल पैरामीटर तक पहुंचने के लिए डेविस सत्र के नए दृश्य की आवश्यकता है हालांकि मैं इसे सामान्य रेल अनुरोध के रूप में देखता हूं सवाल संभालना अनिवार्य रूप से, एक अनुरोध प्रमाणित संसाधन के लिए एक अनुरोध किया जाता है जो उपयोगकर्ता को लॉगिन स्क्रीन पर रीडायरेक्ट करता है। लॉगिन ध्यान में रखते हुए मैं अनुरोध यूआरएल, जैसे के लिए उपयोग की जरूरत है, इस अनुरोध यूआरएल शुरुआतरेल 3 अनुरोधकर्ता संदर्भ

http://mysite.com/article/5?type=blah 

रीडायरेक्ट प्रवेश पृष्ठ में कहा जाता है, मुझे लगता है कि यूआरएल पर पहुंच की आवश्यकता है, किसी को भी पता है कि मैं कैसे कर सकते हैं इस?

उत्तर

42

आप रेफरर यूआरएल प्राप्त करने के लिए अपने नियंत्रक में request.referer या request.env['HTTP_REFERER'] का उपयोग कर सकते हैं।

+0

कोशिश की, काम नहीं किया, यह लॉगिन स्क्रीन यूआरएल दिखाता है। इसके द्वारा, मेरा मतलब सत्र नियंत्रक में था। अगर मैं कोड 'लेख' नियंत्रक में डालता हूं, तो लॉगिन प्रमाणित होने के बाद तक इसे निष्पादित नहीं किया जाएगा। –

+0

यदि मैं आपकी आवश्यकताओं को सही समझता हूं, तो आप उपयोगकर्ता को पृष्ठ पर रीडायरेक्ट करना चाहते हैं, जहां वह लॉगिन कार्रवाई से पहले था। जब आप लॉगिन पर क्लिक करते हैं, तो आप सत्र में रीडायरेक्ट यूआरएल को क्यों नहीं सहेजते हैं? – topek

+0

लॉगिन पेज के लिए पुनर्निर्देशन पहले ही ठीक से संभाला जा चुका है, मुझे जो चाहिए वह लॉग इन पेज पर उपयोगकर्ता क्रेडिट मांगने के लिए है, मुझे मूल अनुरोध यूआरएल तक पहुंच की आवश्यकता है, उम्मीद है कि इससे अधिक समझदारी होगी। मुझे यह स्पष्ट करना चाहिए कि मूल कॉल किसी अन्य सर्वर से आता है, ब्राउज़र नहीं। –

3

मुझे पता चला है कि वेबब्रिक request.referrer गलत तरीके से संभालता है। लेकिन घबराना नहीं। यूनिकॉर्न इसे सही संभालता है। मैंने अन्य सर्वरों पर परीक्षण नहीं किया। आपको इसे अपने साथ देखना चाहिए। मुझे नहीं लगता कि आप एक उत्पादन सर्वर के रूप में WEBrick का उपयोग करते हैं।

+0

वास्तव में WEBrick उपयुक्त नहीं है एक उत्पादन सर्वर। मुझे यह भी पता चला कि वेबब्रिक और प्यूमा ने 'request.referrer' को कैसे संभाला - निश्चित रूप से यह जांचने लायक है कि 'request.referrer' WEBrick का उपयोग करके अपेक्षित व्यवहार नहीं करता है। – zelanix