tzinfo-data 存在但未见?

Pap*_*peh 3 ruby rubygems ruby-on-rails tzinfo ruby-on-rails-5

我正在学习 Rails 课程,并收到以下错误,告诉我安装 tzinfo-data gem。但是,gem 已安装。它在我的 gemfile 中。我可以在 Ruby 目录中找到该文件夹​​。为什么这仍然告诉我安装 tzinfo-data?

命令行响应和 gemfile 如下:

C:\Users\KevinLamb\Documents\sites\demo_project>rails db:schema:dump
rails aborted!
TZInfo::DataSourceNotFound: tzinfo-data is not present. Please add gem 'tzinfo-data' to your Gemfile and run bundle install
C:/Users/KevinLamb/Documents/sites/demo_project/config/environment.rb:5:in `<main>'

Caused by:
TZInfo::DataSources::ZoneinfoDirectoryNotFound: None of the paths included in TZInfo::DataSources::ZoneinfoDataSource.search_path are valid zoneinfo directories.
C:/Users/KevinLamb/Documents/sites/demo_project/config/environment.rb:5:in `<main>'
Tasks: TOP => db:schema:dump => db:load_config => environment
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

我正在工作的 demo_project 目录中的 Gemfile:

source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "3.1.1"



# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem "rails", "~> 7.0.2", ">= 7.0.2.3"

# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
gem "sprockets-rails"

# Use mysql as the database for Active Record
gem "mysql2", "~> 0.5"

# Use the Puma web server [https://github.com/puma/puma]
gem "puma", "~> 5.0"

# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
gem "importmap-rails"

# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem "turbo-rails"

# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem "stimulus-rails"

# Build JSON APIs with ease [https://github.com/rails/jbuilder]
gem "jbuilder"

# Use Redis adapter to run Action Cable in production
# gem "redis", "~> 4.0"

# Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
# gem "kredis"

# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
# gem "bcrypt", "~> 3.1.7"

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]

# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", require: false

# Use Sass to process CSS
# gem "sassc-rails"

# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "debug", platforms: %i[ mri mingw x64_mingw ]
end

group :development do
  # Use console on exceptions pages [https://github.com/rails/web-console]
  gem "web-console"

  # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
  # gem "rack-mini-profiler"

  # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
  # gem "spring"
end

group :test do
  # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
  gem "capybara"
  gem "selenium-webdriver"
  gem "webdrivers"
end
Run Code Online (Sandbox Code Playgroud)

显示 tzinfo-data 的 Gems 文件夹: 屏幕截图

Phi*_*oss 6

Bundler 中存在一个错误,这意味着没有与 Windows 上的 64 位 Ruby 3.1 匹配的有效平台值。

gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]您的Gemfile(或任何platforms选项)中,Bundler 将从捆绑包中排除 tzinfo-data,您将收到TZInfo::DataSourceNotFound错误消息。

platforms解决方案是从 Gemfile 中的 tzinfo-data 行中删除该选项,然后运行bundle install

gem 'tzinfo-data'
Run Code Online (Sandbox Code Playgroud)