Хорошо, так что вы можете использовать Bundler и настроить Gemfile, а затем попросить bundler выполнить установку комплекта, bundler извлечет все гемы и установит их, если он еще не установлен, и вы можете затемтребовать все драгоценные камни в файле драгоценного камня.Прочитайте документацию по ссылке для получения дополнительной информации.
Но что вы хотите сделать конкретно в своем вопросе, так это использовать ключевое слово retry.Это ключевое слово будет повторять цикл после вызова функции спасения.
Итак, если вам нужен гем, и он не работает, и вызывается исключение ошибки загрузки.Блок Begin будет спасен, системный вызов установит драгоценный камень, затем он попытается снова и потребует драгоценный камень.Просто осторожно, потому что это может привести к бесконечному циклу, если вы не захотите установить условие, которое может повторить попытку только один раз.
begin
require 'zip/zip'
rescue LoadError
system("gem install rubyzip2")
retry
end