我有旧的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?
答案 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。