Rails Bundle - 一个gem两个版本

时间:2012-01-16 10:53:46

标签: ruby-on-rails ruby rubygems gem bundler

我有旧的rails应用程序。此应用程序需要具有不同版本的相同gem。

例如,它现在使用

gem'actionmailer'2.3.5和'actionmailer'2.3.2 gem'actionpack','2.3.5'和'actionpack','2.3.2'

不要问我为什么=)这是一个旧的应用程序,非常庞大。当前的rails版本2.3.5

现在我尝试使用bundler来控制我的宝石。但Bundler不允许在config中使用两次gem。或者我可以看到这样的错误:

  

Bundler找不到gem“actionpack”的兼容版本:In   的Gemfile:       datanoise-actionwebservice(= 2.3.2)ruby取决于         actionpack(= 2.3.2)ruby

rails (= 2.3.5) ruby depends on
  actionpack (2.3.5)

那么,我可以解决这个问题吗?我不能使用Bundler?

2 个答案:

答案 0 :(得分:1)

不,您必须将datanoise-actionwebservice升级到版本2.3.5,或将rails降级为2.3.2。

我建议尽可能升级datanoise-actionwebservice

答案 1 :(得分:0)

datanoise-actionwebservice似乎对它的gemspec中的actionpack和activerecord版本非常(可能太)限制。但是我在内部看到它试图用'> = 2.3.0'版本加载这些宝石(参见lib / action_web_service.rb)。

我建议尝试使用此gem并修补它的gemspec,因此actionpack和activerecord的版本要求更改为'> = 2.3.2'。

然后更新项目的Gemfile以使用修补版本:

gem 'datanoise-actionwebservice', :git => "http://github.com/youraccount/actionwebservice.git"

希望它也适用于2.3.5。