Rails 元编程:这个 gem 安装在哪里?

Rails Metaprogramming: where is this gem installed?

快速元编程问题。在我的 rails 5 项目中,我想在代码中找到某个 gem 的安装位置(即不是命令行)。

我从 Bundler.install_path 开始。

在下面查看,我看到了我为此 ruby 安装的各种 gem 的所有版本(我使用 rbenv,但这也适用于 rvm)。

/home/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/mygem-7eafb06c791d/ /home/user/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/bundler/gems/mygem-3da2bf38d01a/

...and so on

有没有办法告诉 Bundler“你能告诉我安装 gem mygem 的目录吗?或者是否有 gem 名称及其目录的散列(或类似的东西),这也很好。

奖励:如果有关于捆绑器内部工作原理的指南,那也很棒 :)

rbenv-bundler 是使 rbenv shims Bundler 感知的插件,因此您不必在每个命令前键入 bundler exec。 您可以通过在 ~/.bundle/config (mac / linux)

中创建一个配置文件来管理捆绑器的设置
BUNDLE_PATH: ~/vendor/some_path

如果您需要有关配置捆绑器的更多信息,您可以查看 this bundler.io link

Bundler 有 show 命令来显示 gem:

的位置

bundle show mygem