【问题标题】:How do I edit a gem and then hard link it to a project?如何编辑 gem,然后将其硬链接到项目?
【发布时间】:2011-09-20 19:05:59
【问题描述】:

所以我在 /vendor/bundle 中有一个需要修复的 gem,当我编辑其中一个文件然后运行 ​​bundle install 时,它会正确链接,一切都很好。但问题是,当我部署我的项目时,对我的 gem 的编辑会丢失,因为它运行 bundle 并将 gem 保存在单独的共享目录中。

似乎解决这个问题的方法是创建一个 vendor/static_gems 目录,并将 gem 放在其中,然后像这样链接它:

gem 'ruby-mysql', :path => "vendor/static_gems/ruby-mysql-2.9.3"

但我收到一个错误,即找不到 gem。我的路径有问题吗?还是我放在那里的东西有问题?当我从 gems/ 文件夹中复制这个 gem 时,其中的所有内容都是一个 lib/ 目录,其中包含一些 .rb 文件。

【问题讨论】:

    标签: ruby-on-rails ruby rubygems bundler


    【解决方案1】:

    很可能您没有将Gemfile.lock 与您的项目一起部署,因此 Bundler 运行时没有(或更可能)使用链接到另一个 gem 路径的过时的。

    请务必使用您项目的其余部分更新Gemfile.lock,您不必担心静态 gem 路径或类似的东西。

    【讨论】:

    • 所以包含一个 vendor/bundle 目录并且不要使用 capistrano 共享目录来存放 gems?
    【解决方案2】:

    我认为我的想法是正确的,但我没有将整个 gem 放入 static_gem 文件夹,而只是放入 lib 目录。当整个宝石都在那里时,它的效果很好。

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多