Ruby on rails 为一个Rails项目分叉一块宝石

Ruby on rails 为一个Rails项目分叉一块宝石,ruby-on-rails,ruby,fork,gem,Ruby On Rails,Ruby,Fork,Gem,我已经两次发现自己处于这种情况:我在我的系统上安装了一个gem,并从我的Rails项目开始使用它。最终我需要对这个宝石做一些改变。我应该如何进行 理想情况下,我希望在某个地方查看gem的源代码,比如~/third\u party/gems,然后让我的Rails项目使用它。可能吗 在所有情况下,gems都在github,所以我可能会在github为它克隆,创造机会并维护自己的分支。我想我会直接在我的服务器上用gem安装安装这个分支。这有意义吗 在所有情况下,gems都在github,所以我可能会在

我已经两次发现自己处于这种情况:我在我的系统上安装了一个gem,并从我的Rails项目开始使用它。最终我需要对这个宝石做一些改变。我应该如何进行

理想情况下,我希望在某个地方查看gem的源代码,比如~/third\u party/gems,然后让我的Rails项目使用它。可能吗

在所有情况下,gems都在github,所以我可能会在github为它克隆,创造机会并维护自己的分支。我想我会直接在我的服务器上用gem安装安装这个分支。这有意义吗

在所有情况下,gems都在github,所以我可能会在github为它克隆,创造机会并维护自己的分支。我想我会直接在我的服务器上用gem安装安装这个分支

如果你真的需要破解真正的gem源代码,那么是的,这就是解决问题的方法。然而,这应该是最后的手段。如果不需要的话,你不想维护真正的宝石。为什么不从gem源代码扩展类,您需要更改和使用这些类的功能,而不是Rails代码中的gem类


我发现很少有人真的需要直接破解第三方代码来做你需要做的事情。好的软件可以扩展/轻松扩充。

如今,使用Bundler很容易做到这一点。你制作一个本地的gem副本,然后

gem "whatever"
在GEM文件中,您执行以下操作:

gem "whatever", :path => "/home/pupeno/whatever"
运行bundle安装后,将从该目录中选取gem。即使修改了其中的某些内容,重新加载它所需要做的就是重新启动Rails

如果您需要使用自己对Gem的更改部署应用程序,您可以在Github或类似的平台上使用fork,并在Gemfile上执行以下操作:

gem "whatever", :git => "git@github.com:/pupeno/whatever.git"

就这样。它简单、直观、美观。

在GitHub构建gems正在逐步淘汰。这是很有用的,因为在某些情况下,有一个gem是过时的,或者有我想用作起始点的功能。谢谢。我建议使用公共git url<代码>git://github.com/pupeno/whatever.git而不是专用(
git@githpb.com:pupeno/whatever.git
)如果其他人使用您的项目,并且没有私人访问您的report的权限,您如何获得确切gem版本的github地址?要在特定版本使用gem,请使用
:ref
(或
:branch
:tag
)…要查看github中的可用版本,请访问
github.com/user name/repo name/releases