ruby-on-rails – 同时使用2个版本的gem

我可以在一个应用程序中使用两个版本的gem吗?我试图使用两个rails插件来协同工作:

> Pengwynn的LinkedIn https://github.com/pengwynn/linkedin for LinkedIn API调用,对oauth有依赖(〜> 0.3.5)
> OmniAuth用户通过多个知名网站登录,依赖于oauth 0.4.0

当我在rails中尝试某些东西时,我会收到以下错误消息:

$rails server
c:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/resolver.rb:129:in `resolve': Bundler Could not find compatible versions for gem "oauth": (Bundler::VersionConflict)
  In snapshot (Gemfile.lock):
    oauth (0.4.4)

  In Gemfile:
    linkedin depends on
      oauth (~> 0.3.5)

Running `bundle update` will rebuild your snapshot from scratch,using only
the gems in your Gemfile,which may resolve the conflict.

尝试捆绑更新只会冻结我的终端

是否可以同时使用这两个插件

解决方法

使用单个宝石的两个版本通常意味着:使用同一个类的两个版本.

没有对这些宝石进行修改是不可能的.您可以尝试将创建的类放在某个模块中,解决导入到其他类的方法的冲突等等.一般来说,这不是一件容易的事,通常效果不值得.

在这种情况下您应该做的是要求宝石维护者更新依赖关系,或尝试自己做.

也许你可以将这些宝石之一降级(使用旧版本)到依赖关系相同的版本.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...