data_source.rb:182: TZInfo::DataSourceNotFound解决办法

启动服务器webrick时出现错误:

C:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/tzinfo-1.2.2/lib/tzinfo/data_source.rb:182:in `rescue in create_default_data_source': No source of timezone data could be found. (TZInfo::DataSourceNotFound)

clipboard26

 

首先TZInfo::DataSourceNotFound错误是由于Rails的ActiveSupport组件的一个依赖TZInfo引起 的。说明TZInfo在你的系统中查找时区来源失败。在许多基于基于Unix的系统中,TZInfo可以使用系统中的zoneinfo文件夹作为数据来 源。然而,Windows并没有这样的文件,所以需要安装tzinfo-data gem,其内容与zoneinfo里的内容一样,打包成一个Ruby的模块。
在应用创建之初rails会在目录下默认生成一个Gemfile,其声明了Bundler会用到的 rubygems),而出现这个错误的原因是应用中的Gemfile没有安装tzinfo-data或者使 用了64位的ruby:打开Gemfile查看是否包含:gem 'tzinfo- data', platforms: [:mingw, :mswin]一行,如果未包含说明没有安装tzinfo-data gem,如果有这一行仍然出现错误,说明使用的是64位的ruby。

 

解决办法(from stackoverflow)

 

1. 在应用目录下(例如...\Blog\)运行以下命令:

gem isntall tzinfo-data

2. 修改Gemfile文件,在gem 'tzinfo-data'一行加入:x64_mingw(只有64位ruby执行这一步

    gem 'tzinfo-data', platforms: [:x64_mingw, :mingw, :mswin]

3. 再次运行bundle命令:

    bundle update 

重新启动一下服务器吧~~

clipboard27

 

问题解决了~~开心呀~~

c0184b30jw1emm3drya97g205x03ju0x

posted @ 2015-05-22 18:13  Sophiawow  Views(1249)  Comments(0Edit  收藏  举报