75 votes

Erreur TZInfo :: DataSourceNotFound au démarrage du serveur Rails v4.1.0 sous Windows

J'ai créé une nouvelle application à l'aide de Ruby on Rails v4.1.0. Lorsque je tente de démarrer un serveur ou une console sous Windows, le message d'erreur suivant s'affiche:

 $ rails server
Booting WEBrick
Rails 4.1.0 application starting in development on ....

Exiting
c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:199:
in `rescue in create_default_data_source': 
No timezone data source could be found. To resolve this, either install 
TZInfo::Data (e.g. by running `gem install tzinfo-data`) or specify a zoneinfo 
directory using `TZInfo::DataSource.set(:zoneinfo, zoneinfo_path)`.
(TZInfo::DataSourceNotFound) 
from c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/tzinfo-1.1.0/lib/tzinfo/data_source.rb:196:
in `create_default_data_source'
 

Comment puis-je résoudre cette erreur?

165voto

Phil Ross Points 10227

La résolution de cette Erreur

Pour résoudre cette erreur, vous devez assurez-vous que le tzinfo-données gem est inclus dans votre Gemfile.

Tout d'abord, vérifiez votre Gemfile pour voir s'il existe une référence à l' tzinfo-data. Si il n'y a pas déjà une référence, puis ajoutez la ligne suivante:

gem 'tzinfo-data'

Vous pouvez trouver qu'il existe déjà une ligne comme la suivante:

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

Si vous utilisez une version 64 bits de Ruby sur Windows, puis ajouter :x64_mingw à la liste des plates-formes comme suit:

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

Alternativement, vous pouvez supprimer l' platforms option tout à fait.

Après cela, exécutez bundle update à la ligne de commande pour installer le tzinfo-données gem et vous serez alors en mesure de démarrer votre serveur Rails ou de la console.


Arrière-plan

L' TZInfo::DataSourceNotFound d'erreur est élevé par TZInfo, une dépendance de l'Appui Actif de la composante de Rails. TZInfo est à la recherche d'une source de données de fuseau horaire sur votre système, mais faute d'en trouver un.

Sur de nombreux systèmes Unix (par exemple Linux), TZInfo est en mesure d'utiliser le système zoneinfo répertoire en tant que source de données. Cependant, Windows ne comprend pas un tel répertoire, de sorte que le tzinfo-données gem doit être installé à la place. Le tzinfo-données gem contient les mêmes zoneinfo de données, emballé comme un ensemble de modules Ruby.

Rails génère un défaut Gemfile lorsque la demande est d'abord créé. Si l'application est créé sur Windows, puis une dépendance pour tzinfo-les données seront incluses. Toutefois (comme les Rails de la version 4.1.0), il omet :x64_mingw à partir de la liste des plates-formes, donc ne fonctionne pas correctement sur Windows 64-bit versions de Ruby. Cela devrait être corrigé dans les futures Rails de presse.

16voto

Russell Clarvoe Points 123

J'ai dû ajouter deux gemmes pour que le serveur démarre.

gem 'tzinfo-data'
gem 'tzinfo'

Puis groupez l'installation.

8voto

SELECT_UPDATE Points 124

Il suffit de mettre ceci dans le terminal de votre application:

 gem install tzinfo-data
 

puis changez la ligne gemfile en:

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

puis encore dans votre terminal:

 bundle update
 

Cela résoudra le problème directement.

6voto

HaTiMSuM Points 61

Ajouter la ligne suivante à votre fichier Gem

bijou 'tzinfo-data', plateformes: [: x64_mingw,: mingw,: mswin]

3voto

Razavi Points 37

Peut-être que tzinfo n'est pas installé sur votre système, essayez de l'installer:

  gem install tzinfo
 gem install tzinfo-data
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X