Do I need to revert to an older version of Rails just to run a single legacy app (among other problems)?

StackOverflow https://stackoverflow.com/questions/800089

Question

I have an older Rails app that I need to run. But I have the latest version of Rails.

When I try to run this older app it says:

Missing the Rails 1.99.0 gem. Please gem install -v=1.99.0 rails

But when I run the command: gem install -v=1.99.0 rails

ERROR: could not find gem rails locally or in a repository

Not sure what to do next. Could someone help me understand what's happening here?

And my second question, related to this problem is: It seems silly that I need to revert to an older version of Rails just to run this one legacy app - there must be a better way of doing this?

Was it helpful?

Solution

AFAIK, v1.99.0 is sort of a v2.0 prerelease, so you could try installing v2.0.x, changing the RAILS_GEM_VERSION in config/environment.rb and runing rake rails:update.

If you think about it, it's not as silly as it might seem at first. You make an app using a fast evolving web framework as RoR. Your choices are: continue developing your app at aproximately the same pace the framework is evolving, or freeze the rails gem (and evertything else your app depends on, like gems, plugins) into your app in order to make it less fragile to expecting gem updates.

OTHER TIPS

Regarding the second question: yes it is silly. Fortunately the Rails team spotted that silliness and at some point they gave us the ability to "freeze" the versions of Rails libraries required by an application (and also specific gem versions) into the vendor directory.

To freeze your version of Rails:

rake rails:freeze:gems

There's a good blog post from a while back describing this.

Unless you install and deploy RVM, your installation will roll back your system rails installation, which will impact your other projects. If you want to manually administrate your development environment this way, you can uninstall rails first, and then install the desired version of rails for the current project.

But try to install your rails gem instead with this syntax:

sudo gem install rails -v 1.99.0
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top