Pergunta

Eu criei uma nova aplicação usando o framework Ruby on Rails v4.1.0.Ao tentar iniciar um servidor ou console no Windows, eu estou enfrentando o seguinte erro:

$ 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'

Como posso resolver este erro?

Foi útil?

Solução

Como resolver o Erro

Para resolver esse erro, você precisará certifique-se de que o tzinfo-dados do gem está sendo incluído no seu Gemfile.

Primeiro de tudo, verifique o seu Gemfile para ver se existe uma referência para tzinfo-data.Se não houver já uma referência e, em seguida, adicione a seguinte linha:

gem 'tzinfo-data'

Você pode achar que já existe uma linha como a seguinte:

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

Se você estiver usando uma versão de 64 bits do Ruby no Windows, em seguida, adicionar :x64_mingw para a lista de plataformas como segue:

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

Como alternativa, você pode remover o platforms a opção por completo.

Depois de fazer isso, execute bundle update na linha de comando para instalar o tzinfo-dados do gem e você irá, em seguida, ser capaz de iniciar o Rails server ou console.


Fundo

O TZInfo::DataSourceNotFound o erro está sendo gerado por TZInfo, uma dependência do Active o componente de Suporte dos Trilhos.TZInfo está olhando para uma fonte de dados de fuso horário no seu sistema, mas não para encontrar um.

Em muitos sistemas baseados em Unix (por exemplo,Linux), TZInfo é capaz de usar o sistema zoneinfo diretório como fonte de dados.No entanto, o Windows não inclui um tal de diretório, de modo que o tzinfo-dados do gem precisa ser instalado em vez disso.O tzinfo-dados de gema contém o mesmo fuso horário de dados, fornecido como um conjunto de módulos Ruby.

O Rails gera um padrão Gemfile quando o aplicativo é criado pela primeira vez.Se o aplicativo que é criado no Windows, em seguida, uma dependência para tzinfo-dados serão incluídos.No entanto (como de Trilhos versão 4.1.0), isto omite :x64_mingw a partir da lista de plataformas, de modo a não funcionar correctamente no Windows 64-bit versões do Ruby.Este deve ser fixo no futuro, os Trilhos de lançamentos.

Outras dicas

Eu tive que adicionar duas gemas para obter o servidor para iniciar..

gem 'tzinfo-dados'
gem 'tzinfo'

Então bundle install.

Basta colocar isso no aplicativo terminal :

gem install tzinfo-data

em seguida, altere o gemfile linha para :

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

em seguida, novamente em seu terminal :

bundle update

Que vai resolver o problema diretamente.

Adicione a seguinte linha ao seu Gem Arquivo

gem 'tzinfo-dados', plataformas:[:x64_mingw,:mingw, :mswin]

Eu tinha esse erro quando tentar instalar o Redmine em uma janela de Encaixe recipiente:

RAILS_ENV=production bundle exec rake db:migrate

deu-me o erro, porque o pacote tzdata não foi instalado no meu Ubuntu imagem.

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

fez o truque.

Talvez tzinfo não está instalado no seu sistema, tente instalá-lo:

 gem install tzinfo
 gem install tzinfo-data

Eu tive esse problema também, e fixa-lo adicionando a :x64_mingw para a lista de plataformas para tzinfo-data, E a gem 'tzinfo' para o gemfile.Então bundle install.

Eu tive esse problema no macOs Mojave 10.14.5 e eu achei que era algo com a forma como o meu link simbólico no macOs não estava lendo o correto fornecido zona arquivos de informação.

Eu era capaz de acompanhar esse baixo com o local onde os arquivos devem estar usando o comando TZInfo::ZoneinfoDataSource.search_path e que desde a saída de ["/usr/share/zoneinfo", "/usr/share/lib/zoneinfo", "/etc/zoneinfo"].

Eu comecei a olhar para /usr/share/zoneinfo e lá estavam os arquivos disponíveis para leitura.No entanto rails ainda não era encontrá-los, lê-los, executá-los..?Então, eu criei um link simbólico a partir de outro arquivo /usr/share/zoneinfo.default/ para /etc/zoneinfo (o último caminho TZInfo olha para cima)

Então, finalmente, o comando que funcionou para mim para corrigir este problema foi ln -s /usr/share/zoneinfo.default /etc/zoneinfo

Espero que esta informação seja útil para alguém no futuro.

assim, as gemas não parecem bastante para instalar corretamente, eu tinha que fazer o seguinte

gem 'tzinfo-dados' gem 'tzinfo'

em seguida,

pacote de mostrar para ver todas as gemas

pacote de gema tzinfo você irá obter a jóia do diretório

em seguida, vá para o diretório.você vai precisar de emenda tzinfo-dados para tzinfo.no tzinfo-arquivo de dados, vá para..local_pathname/tzinfo-dados-1.2014.5/lib/tzinfo copie todo o conteúdo do diretório em...local_pathname/tzinfo-1.2.1/lib/tzinfo (para mim, isso significava copiar 'dados' o arquivo e 'dados' o diretório)

em seguida, ir para local_pathname/tzinfo-1.2.1/lib e abrir o arquivo, tzinfo, (não o diretório) e adicione esta linha exigir "tzinfo/dados'

esta foi uma dor para descobrir

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top