Ruby on rails 如何要求使用相同名称的不同宝石?

Ruby on rails 如何要求使用相同名称的不同宝石?,ruby-on-rails,ruby,gem,Ruby On Rails,Ruby,Gem,我对制作一个需要gmail gem for ruby的应用程序感兴趣。 现在有两个宝石: 两个gem都有相同的名称,即:gmail 第二种方法非常清楚,但其中一种方法存在问题。此方法在第一个gem(link)中运行良好。所以我在想,也许我可以用第一种方法。可以这样做吗,如何做?您可以将以下内容添加到您的GEM文件中: gem 'gmail', :git => "git://github.com/dcparker/ruby-gmail", :branch => "master" g

我对制作一个需要gmail gem for ruby的应用程序感兴趣。 现在有两个宝石:

两个gem都有相同的名称,即:gmail
第二种方法非常清楚,但其中一种方法存在问题。此方法在第一个gem(link)中运行良好。所以我在想,也许我可以用第一种方法。可以这样做吗,如何做?

您可以将以下内容添加到您的GEM文件中:

gem 'gmail', :git => "git://github.com/dcparker/ruby-gmail", :branch => "master"
gem 'gmail', :git => "git://github.com/nu7hatch/gmail", :branch => "master"

正如其他人的回答和评论所说,你不能简单地要求这两种宝石

但是,鉴于这两个类都托管在GitHub上,您可以分叉其中一个类并重命名有问题的类。只要您的重命名在gem中保持一致,您就可以在gem文件中使用fork


当然,您不可能轻松地将更改重设到fork上,但如果您真的必须同时使用这两个gem,那么这可能是一个折衷方案,您对此感到满意。

我怀疑您是否能够同时使用这两个gem。一个定义了
类Gmail
,另一个定义了
模块Gmail
。类和模块不能具有相同的名称。即使两者都是一个类或是一个模块(这样您就可以同时需要这两个文件),您将非常幸运地让它们一起工作。这是行不通的。您将收到错误“您不能两次指定来自不同来源的同一个gem”。有没有办法创建别名?比如第一个gem到g1,第二个gem到g2或者类似的东西。