Если вы находитесь в ситуации, когда драгоценные камни используются в разных проектах или, по крайней мере, не в одно и то же время, вы можете использовать функцию набора драгоценностей RVM в качестве обходного пути.У меня недавно была несовместимость драгоценных камней, похожая на вашу, и вот что я использовал.
Если у вас установлен RVM, сделайте следующее:
rvm gemset create gemset_name_here
rvm gemset use gemset_name_here
Итак, что вы делаете, это создаете совершенно новую и полностью обновленную среду для драгоценных камней, но при этом можете вернуться кдрагоценные камни, с которыми вы работали раньше в любое время.В первой строке создается новый набор гемов, а во второй строке указывается RVM начать его использовать.
На этом этапе вам нужно будет запустить bundle install
или рейк или все, что вы используете, чтобы получить нужные вам гемы.но это должно решить проблему.
Поэтому, когда вы используете gem 1 с зависимостью 1, вы используете gemset, который имеет требуемую версию.Затем, когда вы используете гем 2 с зависимостью 2, вы переключаетесь на набор гемов, который имеет это.
Теперь, если оба камня являются частью одного более крупного проекта, это не будет осуществимо, и вам, скорее всего, потребуетсяотредактируйте исходный код gem для запуска новой версии зависимости, как сказал @BaroqueBobcat.Во многих случаях это на самом деле довольно легко.Разработчики Ruby, как правило, очень хороши в том, чтобы сделать их код легким для восприятия.