Question

J'ai créé une nouvelle application en utilisant Ruby on Rails v4.1.0.Lorsque vous tentez de démarrer un serveur ou en mode console sous Windows, je rencontre l'erreur suivante:

$ 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 ce problème?

Était-ce utile?

La solution

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 si il y a une référence à 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 le platforms option tout à fait.

Après cela, exécutez bundle update sur 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 l'erreur est d'être é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 ex.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.Cette doit être fixe à l'avenir Rails de presse.

Autres conseils

Je devais ajouter deux gemmes pour que le serveur commence.

GEM 'TzInfo-Data'
Gem 'TzInfo'

ALORS BUNDLE INSTALLATION.

Il suffit de mettre cela dans votre terminal d'application:

gem install tzinfo-data

puis changez la ligne gemfile à:

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

à nouveau dans votre borne:

bundle update

Cela résoudra le problème directement.

Ajoutez la ligne suivante à votre fichier GEM

GEM 'TzInfo-Data', plates-formes: [: x64_mingw ,: mingw ,: mswin]

J'ai eu cette erreur lors de la tentative d'installation de redmine dans un conteneur Docker:

RAILS_ENV=production bundle exec rake db:migrate

m'a donné l'erreur car le package geniègoCoCode n'a pas été installé dans mon image Ubuntu.

apt-get update && apt-get install tzdata -y

a fait le tour.

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

 gem install tzinfo
 gem install tzinfo-data

J'ai eu ce problème aussi, et qu'il est corrigé par l'ajout, à la FOIS la :x64_mingw pour la liste des plateformes de tzinfo-data, ET le gem 'tzinfo' dans le gemfile.Puis bundle install.

J'ai rencontré ce problème sur macOs Mojave 10.14.5 et j'ai trouvé que c'était quelque chose avec la façon dont mon lien symbolique dans macOs n'était pas la lecture de la bonne condition de la zone de fichiers info.

J'ai été en mesure de suivre ça en bas à l'endroit où les fichiers doivent être à l'aide de la commande TZInfo::ZoneinfoDataSource.search_path et qui a fourni à la sortie de ["/usr/share/zoneinfo", "/usr/share/lib/zoneinfo", "/etc/zoneinfo"].

J'ai commencé à chercher dans /usr/share/zoneinfo et il y avait des fichiers disponible pour la lecture.Cependant rails n'était toujours pas à les trouver, à les lire, de les exécuter..?J'ai donc créé un lien symbolique à partir de l'autre fichier /usr/share/zoneinfo.default/ pour /etc/zoneinfo (le dernier chemin TZInfo recherche)

Donc, finalement, la commande qui a fonctionné pour moi à résoudre ce problème a été ln -s /usr/share/zoneinfo.default /etc/zoneinfo

Nous espérons que cette information est utile à quelqu'un dans le futur.

Alors, les pierres précieuses ne semblaient pas bien installer correctement, je devais faire ce qui suit

GEM 'TZInfo-Data' Gem 'TzInfo'

alors

spectacle de paquet Pour voir tous les gemmes

Bundle Gem Tzinfo vous obtiendra le répertoire de la gemme

Alors, allez dans ce répertoire.Vous devrez épisser les données TzInfo dans TzInfo. Dans le fichier Tzinfo-Data, allez à .. local_pathName / tzinfo-data-1.2014.5 / lib / tzinfo Copiez tout le contenu de ce répertoire en ... local_pathname / tzinfo-1.2.1 / lib / tzinfo (Pour moi, cela signifiait la copie de «données» le fichier et «données» du répertoire)

Alors aller à local_pathname / tzinfo-1.2.1 / lib et ouvrez le fichier, tzinfo, (pas le répertoire) et ajoutez cette ligne exiger 'tzinfo / données'

C'était une telle douleur à comprendre

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top