2010-08-21 5 views
11

मैं उपयोगकर्ता के लिए अपने टाइमज़ोन का चयन करने के लिए उन चुनिंदा फ़ील्ड में से एक आउटपुट करना चाहता हूं। मेरा उपयोगकर्ता मॉडल टाइमज़ोन को सेकेंड में पूर्णांक के रूप में सहेजता है। लेकिन अगर मैं व्यावहारिक नहीं हूं तो मैं इसे बदल सकता हूं।रेलज़ पर रूबी में टाइमज़ोन का चयन करें

कुछ इस तरह:

<select> 
    ... 
    <option value="x">+9:00 (Darwin, Australia)</option> 
    <option value="x">+10:00 (Sydney, Australia)</option> 
    ... 
</select> 

मैं देख रहा हूँ है कि वहाँ रूबी ए टाइम इन क्लास ऑन रेल्स ... किसी को भी मुझे सही दिशा में बात कर सकते हैं?

उत्तर

32

आप एक स्ट्रिंग के रूप में टाइमज़ोन स्टोर कर सकते हैं। इस सलेक्ट बॉक्स

<%= f.time_zone_select :time_zone %> 
+1

हाँ, मैंने पहले उस लिंक को देखा था! आपकी सहायता के लिए धन्यवाद. – Rimian

+1

ग्रेट। यही वह है जिसे मैं ढूंढ रहा हूं। धन्यवाद। –

+4

लिंक पुराना प्रतीत होता है और ग्रीक फिल्म समीक्षाओं में यातायात को निर्देशित कर रहा है? – Jay

1
timezones_diff_and_name = [] 
    TZInfo::Timezone.all_linked_zones.each do |tz| 
    timezones_diff_and_name << {tz.name => tz.current_period.utc_total_offset/(60 * 60)} 
    end 

    sorted_timezones = timezones_diff_and_name.sort_by { |timezone| timezone.values[0] } 

    @timezones = {} 
    sorted_timezones.each do |tz| 
    diff = tz.values[0] 
    name = tz.keys[0] 
    @timezones["(GMT#{diff > 0 ? '+':''}#{diff.to_s}h) #{name}"] = name 
    end 

एक बेहतर/क्लीनर समाधान के साथ किसी को भी दिखाने के लिए

def self.up 
    add_column :users, :time_zone, :string, :limit => 255, :default => "UTC" 
    end 

का उपयोग करें? मैं बिस्तर पर हूँ :)

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^