Устранение ошибки
Чтобы устранить эту ошибку, вам нужно убедиться, что гем tzinfo-data включен в ваш файл Gemfile
.
Прежде всего, проверьте свой Gemfile
, чтобы увидеть, существует ли существующая ссылка на tzinfo-data
. Если ссылки еще нет, добавьте следующую строку:
gem 'tzinfo-data'
Вы можете обнаружить, что уже есть такая строка:
gem 'tzinfo-data', platforms: [:mingw, :mswin]
Если вы используете 64-битную версию Ruby в Windows, добавьте :x64_mingw
в список платформ следующим образом:
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
Кроме того, вы можете вообще удалить параметр platforms
.
После этого запустите bundle update
в командной строке, чтобы установить гем tzinfo-data, после чего вы сможете запустить свой сервер или консоль Rails.
Фон
Ошибка TZInfo::DataSourceNotFound
вызывается TZInfo, зависимостью компонента активной поддержки Rails. TZInfo ищет источник данных о часовом поясе в вашей системе, но не может его найти.
Во многих системах на основе Unix (например, Linux) TZInfo может использовать системный каталог zoneinfo как источник данных. Однако Windows не включает такой каталог, поэтому вместо него необходимо установить гем tzinfo-data. Гем tzinfo-data содержит те же данные zoneinfo, упакованные в виде набора модулей Ruby.
Rails генерирует значение по умолчанию Gemfile
при первом создании приложения. Если приложение создано в Windows, то будет включена зависимость для tzinfo-data. Однако (начиная с версии Rails 4.1.0) это исключает :x64_mingw
из списка платформ, поэтому не работает корректно в 64-битных версиях Ruby для Windows. Это должно быть исправлено в будущих выпусках Rails.
person
Phil Ross
schedule
11.04.2014
gem install tzinfo-data
или укажите каталог zoneinfo с помощью `TZInfo::DataSource.set(:zoneinfo, zoneinfo_path). Если да, то каков был результат? - person Pavling   schedule 12.04.2014