修改Gem,然后确保重新加载?

时间:2012-06-09 18:06:45

标签: ruby-on-rails gem

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

2 个答案:

答案 0 :(得分:1)

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

  • 向gem维护者发送拉取请求
  • 猴子修补你应用中的宝石
  • 分割原始宝石并保留副本。

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

答案 1 :(得分:1)

确保使用打开的包修改已安装的gem。进行更改,保存,然后如果您的应用程序是本地的并且在标准开发模式下运行(无缓存),则更改将立即发生,更糟糕的情况是您可以重新启动应用程序并将其接收。如果没有,您不会对您的应用使用的宝石进行更改。像这样的更改将在bundle安装中继续存在,因为bundler没有理由更新你的gem。但是,如果您运行bundle update并且安装了修改后的gem的新版本,它将消除您的更改。一个好方法是在github上分割原始gem,进行更改并让你的应用指向github上的分叉副本..然后即使你部署应用程序,它也会找到并安装你修改过的代码。此外,如果更改对每个人都有用,请对原始项目发出拉取请求。