0

我在 railstutorial.org 上做 Hartls 的教程

我需要在我的 64 位 Windows 机器上运行 Rails 4.0.8。这意味着我必须在我的 tzinfo-data Gem 上指定 x64_mingw 选项才能修复 Rails 时区错误。

  • Rails 4.0.8 需要 tzinfo v 0.3.37

  • x64_mingw 需要 tzinfo v 1.0.0

  • 捆绑失败并出现“不兼容的 tzinfo 版本”错误。

我该怎么办?我已经完成了一半,我现在不想切换开发机器!我知道配置在 32 位操作系统上运行良好。

rails (= 4.0.8) x64-mingw32 depends on
  activesupport (= 4.0.8) x64-mingw32 depends on
    tzinfo (~> 0.3.37) x64-mingw32

.

tzinfo-data (>= 0) x64-mingw32 depends on
  tzinfo (>= 1.0.0) x64-mingw32

.


宝石文件 =>

source 'https://rubygems.org'
ruby '2.0.0'


gem 'rails', '4.0.8'

group :development, :test do
gem 'tzinfo', '0.3.37'
gem 'sqlite3', '1.3.8'
gem 'rspec-rails', '2.13.1'
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]

end

group :test do
gem 'selenium-webdriver', '2.35.1'
gem 'capybara', '2.1.0'
end

gem 'bootstrap-sass', '2.3.2.0'
gem 'sprockets', '2.11.0'
gem 'sass-rails', '4.0.3'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'

group :doc do
gem 'sdoc', '0.3.20', require: false
end

group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
4

1 回答 1

1

您需要从 Gemfile 中删除对 tzinfo-data 的依赖。

如果您使用的是 tzinfo 1.0.0 或更高版本,则仅在 Windows 系统上才需要 tzinfo-data gem。Rails 4.0 使用 tzinfo ~> 0.3.37,因此不需要 tzinfo-data。

原因是 1.0.0 版本之前的 tzinfo 包含了它需要操作的所有时区数据(有效地捆绑了 tzinfo-data gem)。随着版本 1.0.0 的发布,数据被拆分到一个单独的 gem 中。

如果您将来在 Windows 上升级到 Rails 4.1,您需要更改 Gemfile 以删除对 tzinfo 的特定版本依赖并重新添加 tzinfo-data 依赖。这是因为 Rails 4.1 需要 tzinfo ~> 1.1 .

于 2014-09-13T10:34:10.967 回答