2011-03-30 84 views
1

我正在使用gem metar分析器來解析給定的天氣報告(metar)。時間以UTC給出,但一旦我的物體從寶石中返回,它的時區爲+2(丹麥)。我想將此更改爲UTC,但保持小時。更改時區

所以我發現這個方法

module ActiveSupport 
    class TimeWithZone 
    def zone=(new_zone = ::Time.zone) 
     # Reinitialize with the new zone and the local time 
     initialize(nil, ::Time.__send__(:get_zone, new_zone), time) 
    end 
    end 
end 

它可能不是這樣做的最優雅的方式。但問題是,我應該把這個time_with_zone.rb文件放在/ lib /中嗎?無論如何,我從zone=得到一個NoMethodError。

+1

在Rails 3中,/ lib文件不是自動加載的(在Rails 2中是這樣)。您應該在'application.rb'文件中添加'config.autoload_paths + =%W(#{config.root}/lib /)'。 – rubyprince 2011-03-30 11:21:33

回答

1

您是否找到了編碼here?你可以像約翰在他的回答中解釋的那樣做,並在config/initializers目錄或lib目錄中創建一個文件。但是,放置在lib目錄中需要將目錄添加到自動加載路徑。這是在config/application.rb文件中完成的。您應該添加如下內容:

config.autoload_paths += %W(#{config.root}/lib/)