当LoadError' LoadError'在救援区块中安装红宝石宝石。发生

时间:2017-12-06 08:56:13

标签: ruby rubygems

我正在尝试从ruby脚本安装ruby gem,因为它无法从本地系统加载所需的gem。这是我的代码。

begin
  require '<gem name here>'
rescue LoadError
  puts `gem install <gem name here>`
  require '<gem name here>'
end

上面的代码在rescue块中安装gem。但是当它需要gem时,会显示以下错误:

.rvm/rubies/ruby-2.4.2/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb
:55:in require': cannot load such file -- <gem name here> (LoadError)

如何解决这个问题?如果系统中尚未存在gem,我希望将gem加载到rescue块中。

1 个答案:

答案 0 :(得分:0)

经过严格的搜索,我找到了答案。如果我们在安装gem之后使用Gem.clear_paths,它现在可供脚本使用。总更新代码为:

begin
require '<gem name here>'
rescue LoadError
  puts `gem install <gem name here>`
  Gem.clear_paths
  require '<gem name here>'
end