当 'LoadError' 发生时,在救援块中安装 ruby gem
Install ruby gem in rescue block when 'LoadError' occurs
我正在尝试从 ruby 脚本安装 ruby gem,但它无法从本地系统加载所需的 gem。这是我的代码。
begin
require '<gem name here>'
rescue LoadError
puts `gem install <gem name here>`
require '<gem name here>'
end
上面的代码将 gem 安装在 rescue
块中。但是当它需要 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 加载到 rescue
块中(如果系统中尚未存在的话)。
经过严格的搜索,我找到了答案。如果我们在安装 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
我正在尝试从 ruby 脚本安装 ruby gem,但它无法从本地系统加载所需的 gem。这是我的代码。
begin
require '<gem name here>'
rescue LoadError
puts `gem install <gem name here>`
require '<gem name here>'
end
上面的代码将 gem 安装在 rescue
块中。但是当它需要 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 加载到 rescue
块中(如果系统中尚未存在的话)。
经过严格的搜索,我找到了答案。如果我们在安装 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