You may fall down into the situation where you don’t have RVM and your system gem is upgraded for using latest things.
And your old application is still running on older version of rails.
This is just a workaround of using
Gem > 1.3.7
in Rails 2.3 Applications.
I have tested this solution with Rails 2.3.5 and different version of gems.
After upgrading gems to 1.6.2 i have got an error
/activesupport-2.3.5/lib/active_support/dependencies.rb:55:
uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
To fix this error need to update boot.rb file. Place this at the top of
boot.rb
require 'thread'
After adding this you should be getting this error
/gem_dependency.rb:119:in
`requirement': undefined local variable or method `version_requirements'
To fix this error you need update your
environment.rb
file.
Add this code above your
Rails::Initializer.run
block.
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.3.7')
module Rails
class GemDependency
def requirement
r = super
(r == Gem::Requirement.default) ? nil : r
end
end
end
end
Now your application should start running properly. Have fun ;)
Now you can downgrade or upgrade your system gem version. Your application will still run.
Above workaround works for me very well. Any other ideas?