Pregunta

He creado una nueva aplicación en Ruby on Rails v4.1.0.Al intentar iniciar un servidor o consola en Windows, yo soy de su encuentro con el siguiente error:

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

¿Cómo puedo solucionar este error?

¿Fue útil?

Solución

Para resolver el Error

Para resolver este error, usted necesita para asegurarse de que el tzinfo-datos de la gema está siendo incluido en su Gemfile.

Primero de todo, revise su Gemfile a ver si hay una referencia existente a tzinfo-data.Si no existe ya una referencia, a continuación, agregue la siguiente línea:

gem 'tzinfo-data'

Usted puede encontrar que ya hay una línea como la siguiente:

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

Si usted está utilizando una versión de 64 bits de Ruby on de Windows, a continuación, añadir :x64_mingw a la lista de plataformas de la siguiente manera:

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

Alternativamente, usted puede quitar el platforms la opción por completo.

Después de hacer esto, ejecute bundle update en la línea de comandos para instalar el tzinfo-datos de la gema y entonces usted será capaz de iniciar su servidor Rails o de la consola.


De fondo

El TZInfo::DataSourceNotFound el error está siendo criado por TZInfo, una dependencia del Apoyo Activo de los componentes de los Rieles.TZInfo está buscando una fuente de datos de zona horaria en el sistema, pero no para encontrar uno.

En muchos sistemas basados en Unix (por ejemplo,Linux), TZInfo es capaz de utilizar el sistema de zoneinfo directorio como una fuente de datos.Sin embargo, Windows no incluye un directorio, por lo que el tzinfo-datos de la gema necesita ser instalado en su lugar.El tzinfo-datos gem contiene el mismo zoneinfo de datos, se empaqueta como un conjunto de Ruby módulos.

Rails genera un defecto Gemfile cuando la aplicación se crea por primera vez.Si la aplicación se creó en Windows, a continuación, una dependencia para tzinfo-datos serán incluidos.Sin embargo (como el de los Carriles de la versión 4.1.0), esto omite :x64_mingw de la lista de plataformas, así que no funciona correctamente en Windows 64-bit versiones de Ruby.Este debe ser fijo en el futuro Rieles de prensa.

Otros consejos

Tuve que agregar dos gemas para que el servidor se inicie.

gema 'tzinfo-data'
gema 'tzinfo'

luego instala el paquete.

Simplemente ponlo en su terminal de la aplicación:

gem install tzinfo-data

Luego cambia la línea GEMFILE a:

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

luego de nuevo en su terminal:

bundle update

que resolverá el problema directamente.

Agregue la siguiente línea a su archivo de gema

GEM 'Tzinfo-Data', Plataformas: [: x64_mingw,: MINGW,: MSWIN]

Tuve ese error al intentar instalar RedMine en un contenedor de Docker:

RAILS_ENV=production bundle exec rake db:migrate

me dio el error porque el paquete tzdata no se instaló en mi imagen de Ubuntu.

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

hice el truco.

Tal vez Tzinfo no está instalado en su sistema, intente instalarlo:

 gem install tzinfo
 gem install tzinfo-data

He tenido este problema y lo solucionó mediante la adición TANTO de la :x64_mingw a la lista de plataformas para tzinfo-data, Y la joya 'tzinfo' al gemfile.Luego bundle install.

Me encontré con este problema en macOs Mojave 10.14.5 y me enteré de que se trataba de algo con la forma de mi enlace simbólico en macOs no leer el correcto siempre de la zona de información de archivos.

Yo era capaz de seguir la pista de este con el lugar donde los archivos deben ser usando el comando TZInfo::ZoneinfoDataSource.search_path y que siempre que la salida de ["/usr/share/zoneinfo", "/usr/share/lib/zoneinfo", "/etc/zoneinfo"].

Comencé a buscar en /usr/share/zoneinfo y allí estaban los archivos disponibles para leer.Sin embargo rieles todavía no era la búsqueda de ellos, la lectura de los mismos, la ejecución de ellos..?Así que, a continuación, crea un enlace simbólico desde el otro archivo en /usr/share/zoneinfo.default/ a /etc/zoneinfo (la última ruta de acceso TZInfo mira hacia arriba)

Así que, finalmente, el comando que trabajó para mí para solucionar este problema se ln -s /usr/share/zoneinfo.default /etc/zoneinfo

Espero que esta información es útil para alguien en el futuro.

Entonces, las gemas parecían estar bien instaladas correctamente, tuve que hacer lo siguiente

gema 'tzinfo-data' gema 'tzinfo'

luego

bundle show Para ver todas las gemas

paquete gema tzinfo lo recibirá el directorio de la gema

Entonces, vaya a ese directorio.Tendrá que separar los datos de Tzinfo en Tzinfo. En el archivo de datos de Tzinfo, vaya a .. local_pathname / tzinfo-data-1.2014.5 / lib / tzinfo Copia todos los contenidos de este directorio en ... local_pathname / tzinfo-1.2.1 / lib / tzinfo (Para mí, esto significó copiar "Datos" del archivo y 'DATA'SE el directorio)

entonces ir local_pathname / tzinfo-1.2.1 / lib y abre el archivo, Tzinfo, (no el directorio) y agregue esta linea Requerir 'Tzinfo / DATOS'

Este fue un dolor para descubrir

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top