1

我有一个 gem,我在其中修改了一些代码,但是当我捆绑安装或更新时,对 gem 的更改不会反映在我的应用程序中。有没有办法确保在我的应用程序中捕获并重新加载更改?谢谢。

4

2 回答 2

1

永远不应该直接在 gem 中更新代码。相反,请从以下选项之一中进行选择(从首选到次要):

  • 向 gem 维护者发送拉取请求
  • Monkey 修补应用程序中的 gem
  • 分叉原始 gem 并维护您的副本。

如果您需要任何帮助,这是另一个讨论的主题,但请不要在 gem 本身中编辑代码。

于 2012-06-09T18:34:20.927 回答
1

确保使用 bundle open 修改已安装的 gem。进行更改,保存,然后如果您的应用程序是本地的并且在标准开发模式下运行(无缓存),则更改将立即生效,更糟糕的情况是您可以重新启动您的应用程序并且它们将被拾取。如果没有,您没有对您的应用程序使用的 gem 进行更改。像这样的更改将在 bundle 安装后继续存在,因为 bundler 没有理由更新您的 gem。但是,如果您运行 bundle update 并且安装了修改后的 gem 的新版本,它将摆脱您的更改。一个好的方法是在 github 上 fork 原始 gem,进行更改并让您的应用程序指向您在 github 上的分叉副本。然后即使您部署应用程序,它也会找到并安装您修改后的代码。此外,如果改变对每个人都有用,

于 2012-06-09T18:38:59.780 回答