2013-07-19 58 views
3

对于我的应用程序,我试图将版本号为3.2.13的Ruby on Rails升级到4.0.0,并且在安装/更新某些gem时遇到了麻烦(通过使用Bundler ),特别是globalize3宝石。我正在运行Ruby 2.0.0-p247将Ruby on Rails从版本3.2.13升级到4.0.0时遇到困难

由于我Gemfile是:

gem 'rails', '4.0.0' 

gem 'globalize3', github: 'svenfuchs/globalize3', branch: 'rails4' 

gem 'delayed_job', :git => 'git://github.com/collectiveidea/delayed_job.git', :branch => 'master' 
gem 'delayed_job_active_record', :git => 'git://github.com/collectiveidea/delayed_job_active_record.git', :branch => 'master' 

# Added these gems to help with the transition to rails4: 
gem 'protected_attributes' 
gem 'rails-observers' 
gem 'actionpack-page_caching' 
gem 'actionpack-action_caching' 
gem 'activerecord-deprecated_finders' 

当我在终端窗口中运行bundle install命令

然后我得到以下输出:

Updating git://github.com/svenfuchs/globalize3.git 
Fetching gem metadata from https://rubygems.org/....... 
Fetching gem metadata from https://rubygems.org/.. 
Resolving dependencies... 
Bundler could not find compatible versions for gem "activerecord": 
    In Gemfile: 
    globalize3 (>= 0) ruby depends on 
     activerecord (~> 3.0) ruby 

    delayed_job_active_record (>= 0) ruby depends on 
     activerecord (4.0.0) 

Bundler could not find compatible versions for gem "rails": 
    In Gemfile: 
    globalize3 (>= 0) ruby depends on 
     rails (~> 3) ruby 

    rails (4.0.0) 

当我运行bundle update命令在终端窗口中

然后我得到以下输出:

Updating git://github.com/collectiveidea/delayed_job.git 
Updating git://github.com/collectiveidea/delayed_job_active_record.git 
Updating git://github.com/svenfuchs/globalize3.git 
Fetching gem metadata from https://rubygems.org/....... 
Fetching gem metadata from https://rubygems.org/.. 
Resolving dependencies... 
Bundler could not find compatible versions for gem "rails": 
    In Gemfile: 
    globalize3 (>= 0) ruby depends on 
     rails (~> 3) ruby 

    rails (4.0.0) 

Bundler could not find compatible versions for gem "railties": 
    In Gemfile: 
    globalize3 (>= 0) ruby depends on 
     railties (~> 3.0) ruby 

    coffee-rails (~> 4.0.0) ruby depends on 
     railties (4.0.0) 

Bundler could not find compatible versions for gem "actionpack": 
    In Gemfile: 
    rails (= 4.0.0) ruby depends on 
     actionpack (= 4.0.0) ruby 

    actionpack-action_caching (>= 0) ruby depends on 
     actionpack (4.0.0.rc2) 

我该如何解决问题? globalize3 gem是否真的与Ruby on Rails 4兼容?建议等待升级到Ruby on Rails 4?

:我看到了#415 Upgrading to Rails 4 railscast和我在网上做了很多的搜索(最合理的讨论是“Globalize3 does not work with Rails4”)关于这个问题,但我还是遇到了麻烦。

+0

嗨后卫,你可以请提供一些材料或步骤升级? – harsh4u

回答

0

globalize3 gem已更名为globalize,主要版本号现在对应于相应版本的ActiveRecord(3.x代表AR3和4.x代表AR4)。

因此,所有你需要做的就是把这个在您的Gemfile,你不应该得到任何冲突:

gem 'globalize', '~> 4.0.0.alpha.2' 

github repository详情请见。

0

尝试使用rails4分支来避免升级问题。

gem 'globalize3', git: 'https://github.com/svenfuchs/globalize3.git', branch: 'rails4' 

但是,您可能仍然遇到一些问题,因为它不是稳定的分支。

+0

它不起作用。 – Backo