फ़ाइल में
config / application.rb में मेरे पास "config.time_zone = 'UTC' (उद्धरण चिह्नों के बिना) है। मैं मान रहा हूं कि यह उपयोगकर्ता के समय से रूपांतरण बनाने के लिए है, जिसे यूटीसी में देखा जाता है, जिसे डेटाबेस में संग्रहीत किया जाता है। मेरा प्रश्न यह है, मैं उपयोगकर्ता के स्थानीय समय को देखने के लिए यूटीसी मूल्य को डाटाबेस से कैसे रूपांतरित कर सकता हूं? मैंने पढ़ा है कि रेल स्वयं का ध्यान रखता है - मैं यह करने के लिए कैसे कहूं?
मेरे पास डाटाबेस में प्रत्येक उपयोगकर्ता की पंक्ति में एक टाइमज़न फ़ील्ड है, मुझे अभी सुनिश्चित नहीं है कि वहां क्या स्टोर करना है, इसके अलावा मैं रेक समय के बारे में जानता हूं: क्षेत्रों: सभी - मुझे नहीं पता कि यह सब कैसे रेल में एक साथ फिट बैठता है!
धन्यवाद,
sk
बहु-क्षेत्र परिवेश में काम करते समय यह समय क्षेत्र निर्धारित करने के लिए बुद्धिमान है UTC। यह आपके application.rb में बिल्कुल मान्य है।
रेल स्वचालित रूप से सभी समय को वर्तमान समय क्षेत्र में बदल देगा, जिसे
के साथ सेट किया जा सकता है .जोन = "कुछ-ज़ोन"
मैं ApplicationController में एक before_filter उपयोग करता हूं, जहां मैं वर्तमान उपयोगकर्ता के अनुसार समय क्षेत्र निर्धारित करता हूं। तब सभी परिचालन इस क्षेत्र में काम करता है और आपको इसके बारे में अपने नियंत्रकों / मॉडल / विचारों पर विचार करने की आवश्यकता नहीं है।
मान लीजिए कि आपके पास कुछ डेटा टाइम फ़ील्ड के साथ कुछ मॉडल फू है। फिर आईआरबी कंसोल में काम कर रहा है:
समय.जोन = "प्राग" एक्स = फू। बनाएं (: it_will_happen_at = & gt; समय.जोन.नह) x.it_will_happen_at # = & gt; शनि, 25 सितम्बर 2010 13:45:46 सीईटी +02: 00 टाइम। ज़ोन = "लंदन" # समय क्षेत्र बदल जाने के बाद क्षेत्र को ताज़ा करने की आवश्यकता है। # सामान्य स्थिति में इसकी ज़रूरत नहीं होगी, यह सिर्फ इस कंसोल उदाहरण के लिए है x.reload x.it_will_happen_at # = & gt; शनि, 25 सितम्बर 2010 12:44:46 बीएसटी +01: 00
जब आप डीबी में एक नज़र डालते हैं, तो आपको यह मान मिलेगा कि शनि, 25 सितम्बर 2010 11:45 : 46 यूटीसी।
क्षेत्र मान के लिए मैं शहरों के नाम पसंद करता हूं क्योंकि यह डेलाइट बचत (गर्मियों / सर्दियों के समय) के साथ आसानी से काम करता है।
Comments
Post a Comment