为Rails项目分配一个gem

pup*_*eno 58 ruby gem fork ruby-on-rails

我在这种情况下发现自己两次:我在我的系统上安装了一个gem并开始在我的Rails项目中使用它.最终我需要对该gem进行一些更改.我该怎么办?

理想情况下,我想查看某个地方的宝石的源代码,比如〜/ third_party/gems,对它进行处理并让我的Rails项目使用它.那可能吗?

在所有情况下,宝石都在github,所以我可能会在github,克隆它,抓住机会并维护我自己的分支.我想我会在我的服务器上直接安装gem分支.那有意义吗?

pup*_*eno 100

今天,Bundler很容易做到这一点.你制作一个宝石的本地副本然后而不是做

gem "whatever"
Run Code Online (Sandbox Code Playgroud)

在您的Gemfile中,您执行以下操作:

gem "whatever", :path => "/home/pupeno/whatever"
Run Code Online (Sandbox Code Playgroud)

运行bundle install后,将从该目录中选择gem.即使您在那里修改了某些内容,重新加载它所需要做的就是重新启动Rails.

如果你需要使用你自己的Gem更改来部署一个应用程序,你可以在Github上创建一个fork,或者在你做的Gemfile上:

gem "whatever", :git => "git@github.com:/pupeno/whatever.git"
Run Code Online (Sandbox Code Playgroud)

就是这样.它简单,直接而且美观.

  • 我建议使用公共git网址.`git:// github.com/pupeno/whatever.git`而不是私人(`git@githpb.com:pupeno/whatever.git`)以防其他人使用您的项目并且没有私人访问权限回购 (16认同)
  • 这很有用,因为在某些情况下,有一个陈旧的宝石,或者我想用作凝视点的功能.谢谢. (2认同)
  • 你如何获得确切的宝石版本的github地址? (2认同)