Я столкнулся с той же проблемой.
Даже когда я явно указываю версию activesupport для использования в моем Gemfile:
gem 'rails', '3.2.9'
gem 'activesupport', '3.2.9'
это все еще дает мне эту ошибку, когда я запускаю bundle exec rails s
:
/home/tyler/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.0.18/lib/bundler/runtime.rb:31:in `block in setup':
You have already activated activesupport 3.2.10, but your Gemfile requires activesupport 3.2.9. Consider using bundle exec. (Gem::LoadError)
Это происходит для меня, когда я хочу попробовать вернуться к более старой версии Rails в моем приложении, чтобы проверить разницумежду двумя версиями Rails.
Так что даже создание отдельного набора gemset для моего приложения (что мы обычно делаем в любом случае) не решает проблему, потому что набор gemset был «загрязнен» самим этим приложением (путем временной установки/ используя Rails 3.2.10 до возвращения к Rails 3.2.9), а не каким-либо другим приложением!
Единственное решение, которое я нашел до сих пор , - удаление более новая версия, которую вы не хотите использовать:
gem uninstall activesupport -v 3.2.10
Кажется, что это либо ошибка в Bundler, либо ошибка в Rails (если она делает что-то, что приводит к загрузке activesupport/ активируется до загружается Bundler, тогда мы не можемдействительно виноват в этом Bundler ...).
Еще одно столь же ужасное решение: Чтобы временно отключить более новую версию гема без удаления это, вы можете отредактировать файл спецификации драгоценного камня (например, /home/tyler/.rvm/gems/ruby-1.9.3-p194/specifications/activesupport-3.2.10.gemspec
) и добавить строку raise 'disabled'
вверху.Bundler пропустит загрузку activesupport 3.2.10
(после восстановления и распечатки ошибки) и перейдет к загрузке следующей наивысшей версии activesupport
, которую он сможет найти (activesupport 3.2.9
).
Когда вы будете готовычтобы снова включить activesupport 3.2.10
, просто удалите raise
.
. Это может быть быстрее, чем удаление и переустановка гема, если вы просто хотите что-то протестировать со старой версией, прежде чем вернуться к более новой версии.из них драгоценный камень.