RoR Hartl教程 - 赢得64位的tzinfo冲突

时间:2014-09-12 17:10:51

标签: ruby-on-rails 64-bit dependency-properties tzinfo

我正在做Hartls' railstutorial.org上的教程

我需要在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


GEMFILE =>

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

1 个答案:

答案 0 :(得分: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。