我正在尝试从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
块中。
答案 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