मैं एक निश्चित तारीख को शुरू करने और / या समाप्त करने के लिए रेल कुकी कैसे सेट कर सकता हूं?
मैं एक निश्चित तारीख को शुरू करने और / या समाप्त करने के लिए रेल कुकी कैसे सेट कर सकता हूं?
जवाबों:
रेल के दस्तावेज 5 के अंश :
कुकीज़ एक्शनकंट्रोलर # कुकीज़ के माध्यम से पढ़ी और लिखी गई हैं।
पढ़ी जा रही कुकीज़ अनुरोध के साथ प्राप्त की गई हैं, जो कुकीज़ लिखी जा रही हैं उन्हें प्रतिक्रिया के साथ बाहर भेजा जाएगा। कुकी को पढ़ने से कुकी ऑब्जेक्ट अपने आप वापस नहीं मिलता है, बस इसका मूल्य है।
लेखन के उदाहरण:
# Sets a simple session cookie. # This cookie will be deleted when the user's browser is closed. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { value: "XJ-122", expires: 1.hour } # Sets a cookie that expires at a specific time. cookies[:login] = { value: "XJ-122", expires: Time.utc(2020, 10, 15, 5) } # Sets a "permanent" cookie (which expires in 20 years from now). cookies.permanent[:login] = "XJ-122"
[...]
कुकीज़ सेट करने के लिए विकल्प प्रतीक हैं:
:expires
- जिस समय यह कुकी समाप्त होती है, समय या ActiveSupport :: अवधि ऑब्जेक्ट के रूप में।[...]
cookies[:login] = { value: "JX-122", expires: 3.months }
त्रुटि बढ़ाएगा। लेकिन यह नहीं होगा। cookies[:login] = { value: "JX-122", expires: 3.months.from_now }
विवरण के लिए देखें github.com/rack/rack/issues/864#issuecomment-104706555
आपका प्रश्न इस प्रश्न से संबंधित हो सकता है: मैं कैसे गतिशील रूप से रेल आधारित कुकी सत्र के लिए समाप्ति समय निर्धारित कर सकता हूं
स्लाइडशो को हटाने के लिए टिप्पणियों में से एक इंगित करता है :
".. यदि आपको अपने आवेदन में सभी नियंत्रकों के माध्यम से सत्रों के लिए समाप्ति की अवधि निर्धारित करने की आवश्यकता है, तो बस निम्न विकल्प को अपने कॉन्फिगरेशन / इंटेस्टाइज़र / session_store.rb फ़ाइल में जोड़ें:
:expire_after => 60.minutes
यदि आपको अलग-अलग नियंत्रकों या क्रियाओं में अलग-अलग समाप्ति समय सेट करने की आवश्यकता है, तो निम्न कोड का उपयोग क्रिया में करें या कुछ पहले_फिल्टर करें:
request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze
हैश के डुप्लीकेशन की आवश्यकता केवल इसलिए है क्योंकि यह पहले से ही उस बिंदु पर जमे हुए है, भले ही कम से कम संशोधन हो: समय समाप्त हो सकता है। और त्रुटिपूर्ण रूप से काम करता है ... "
मुझे आशा है कि वह मदद करेंगे। :)