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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.